Skip to main content

Video metadata parser

Project description

enzyme

Python module to parse metadata in video files

Usage

You can parse any video file. If a parse error occurs, it will throw a ParseError exception. To see what data has been parsed, you can print the object:

>>> import enzyme
>>> p = enzyme.parse('/mnt/movies/My Rips/Harry Potter and the Prisoner of Azkaban (2004)/Harry Potter And The Prisoner Of Azkaban (2004) - 1080p BluRay DTS x264.mkv')
>>> print p
|      title: Harry Potter And The Prisoner Of Azkaban (2004) - 1080p BluRay DTS x264
|       type: Matroska
|  timestamp: 1320680617
|       mime: video/x-matroska
|     length: 8502.176
+-- Video Track #1
|    |      title: Harry Potter And The Prisoner Of Azkaban (2004) - 1080p BluRay DTS x264
|    |   language: eng
|    |      codec: AVC1
|    |      width: 1920
|    |     height: 1080
|    |        fps: 23.9760247425
|    |     aspect: 1.77777777778
|    |    trackno: 1
|    |         id: 0
|    | codec_private: <unprintable data, size=41>
+-- Audio Track #1
|    |      title: DTS French
|    |   language: fre
|    |   channels: 6
|    | samplerate: 48000.0
|    |      codec: 8193
|    |    trackno: 2
|    |         id: 0
+-- Audio Track #2
|    |      title: DTS English
|    |   language: eng
|    |   channels: 6
|    | samplerate: 48000.0
|    |      codec: 8193
|    |    trackno: 3
|    |         id: 1
|    |    default: False
+-- Audio Track #3
|    |      title: AC3 Spanish
|    |   language: spa
|    |   channels: 6
|    | samplerate: 48000.0
|    |      codec: 8192
|    |    trackno: 4
|    |         id: 2
|    |    default: False
+-- Audio Track #4
|    |      title: AC3 Italian
|    |   language: ita
|    |   channels: 6
|    | samplerate: 48000.0
|    |      codec: 8192
|    |    trackno: 5
|    |         id: 3
|    |    default: False
+-- Audio Track #5
|    |      title: AC3 Dutch
|    |   language: dut
|    |   channels: 6
|    | samplerate: 48000.0
|    |      codec: 8192
|    |    trackno: 6
|    |         id: 4
|    |    default: False
+-- Subtitle #1
|    |    default: False
|    |   language: eng
|    |    trackno: 7
|    |      title: Complete(srt)
|    |         id: 0
|    |      codec: S_TEXT/UTF8
+-- Subtitle #2
|    |    default: False
|    |   language: fre
|    |    trackno: 8
|    |      title: Complete(srt)
|    |         id: 1
|    |      codec: S_TEXT/UTF8
+-- Subtitle #3
|    |   language: fre
|    |    trackno: 9
|    |      title: Forced French
|    |         id: 2
|    |      codec: S_TEXT/UTF8
+-- Subtitle #4
|    |    default: False
|    |   language: spa
|    |    trackno: 10
|    |      title: Complete(srt)
|    |         id: 3
|    |      codec: S_TEXT/UTF8
+-- Subtitle #5
|    |    default: False
|    |   language: spa
|    |    trackno: 11
|    |      title: Forced Spanish
|    |         id: 4
|    |      codec: S_TEXT/UTF8
+-- Subtitle #6
|    |    default: False
|    |   language: ita
|    |    trackno: 12
|    |      title: Complete(srt)
|    |         id: 5
|    |      codec: S_TEXT/UTF8
+-- Subtitle #7
|    |    default: False
|    |   language: ita
|    |    trackno: 13
|    |      title: Forced Italian
|    |         id: 6
|    |      codec: S_TEXT/UTF8
+-- Subtitle #8
|    |    default: False
|    |   language: dut
|    |    trackno: 14
|    |      title: Complete(srt)
|    |         id: 7
|    |      codec: S_TEXT/UTF8
+-- Subtitle #9
|    |    default: False
|    |   language: dut
|    |    trackno: 15
|    |      title: Forced Dutch
|    |         id: 8
|    |      codec: S_TEXT/UTF8
+-- Subtitle #10
|    |    default: False
|    |   language: fin
|    |    trackno: 16
|    |      title: Complete(srt)
|    |         id: 9
|    |      codec: S_TEXT/UTF8
+-- Subtitle #11
|    |    default: False
|    |   language: nor
|    |    trackno: 17
|    |      title: Complete(srt)
|    |         id: 10
|    |      codec: S_TEXT/UTF8
+-- Chapter #1
|    |    enabled: 1
|    |       name: 00:00:00.000
|    |        pos: 0.0
|    |         id: 0
+-- Chapter #2
|    |    enabled: 1
|    |       name: 00:01:40.100
|    |        pos: 100.1
|    |         id: 1
+-- Chapter #3
|    |    enabled: 1
|    |       name: 00:06:36.229
|    |        pos: 396.229
|    |         id: 2
+-- Chapter #4
|    |    enabled: 1
|    |       name: 00:12:45.932
|    |        pos: 765.932
|    |         id: 3
+-- Chapter #5
|    |    enabled: 1
|    |       name: 00:14:52.517
|    |        pos: 892.517
|    |         id: 4
+-- Chapter #6
|    |    enabled: 1
|    |       name: 00:16:12.513
|    |        pos: 972.513
|    |         id: 5
+-- Chapter #7
|    |    enabled: 1
|    |       name: 00:18:56.218
|    |        pos: 1136.218
|    |         id: 6
+-- Chapter #8
|    |    enabled: 1
|    |       name: 00:23:50.387
|    |        pos: 1430.387
|    |         id: 7
+-- Chapter #9
|    |    enabled: 1
|    |       name: 00:28:50.729
|    |        pos: 1730.729
|    |         id: 8
+-- Chapter #10
|    |    enabled: 1
|    |       name: 00:31:21.838
|    |        pos: 1881.838
|    |         id: 9
+-- Chapter #11
|    |    enabled: 1
|    |       name: 00:38:50.161
|    |        pos: 2330.161
|    |         id: 10
+-- Chapter #12
|    |    enabled: 1
|    |       name: 00:44:45.308
|    |        pos: 2685.308
|    |         id: 11
+-- Chapter #13
|    |    enabled: 1
|    |       name: 00:47:37.813
|    |        pos: 2857.813
|    |         id: 12
+-- Chapter #14
|    |    enabled: 1
|    |       name: 00:49:39.935
|    |        pos: 2979.935
|    |         id: 13
+-- Chapter #15
|    |    enabled: 1
|    |       name: 00:53:42.845
|    |        pos: 3222.845
|    |         id: 14
+-- Chapter #16
|    |    enabled: 1
|    |       name: 00:57:28.403
|    |        pos: 3448.403
|    |         id: 15
+-- Chapter #17
|    |    enabled: 1
|    |       name: 01:01:23.722
|    |        pos: 3683.722
|    |         id: 16
+-- Chapter #18
|    |    enabled: 1
|    |       name: 01:03:22.924
|    |        pos: 3802.924
|    |         id: 17
+-- Chapter #19
|    |    enabled: 1
|    |       name: 01:07:10.985
|    |        pos: 4030.985
|    |         id: 18
+-- Chapter #20
|    |    enabled: 1
|    |       name: 01:11:53.476
|    |        pos: 4313.476
|    |         id: 19
+-- Chapter #21
|    |    enabled: 1
|    |       name: 01:19:10.079
|    |        pos: 4750.079
|    |         id: 20
+-- Chapter #22
|    |    enabled: 1
|    |       name: 01:22:29.945
|    |        pos: 4949.945
|    |         id: 21
+-- Chapter #23
|    |    enabled: 1
|    |       name: 01:27:30.871
|    |        pos: 5250.871
|    |         id: 22
+-- Chapter #24
|    |    enabled: 1
|    |       name: 01:30:13.366
|    |        pos: 5413.366
|    |         id: 23
+-- Chapter #25
|    |    enabled: 1
|    |       name: 01:34:19.028
|    |        pos: 5659.028
|    |         id: 24
+-- Chapter #26
|    |    enabled: 1
|    |       name: 01:36:56.894
|    |        pos: 5816.894
|    |         id: 25
+-- Chapter #27
|    |    enabled: 1
|    |       name: 01:42:24.472
|    |        pos: 6144.472
|    |         id: 26
+-- Chapter #28
|    |    enabled: 1
|    |       name: 01:45:40.334
|    |        pos: 6340.334
|    |         id: 27
+-- Chapter #29
|    |    enabled: 1
|    |       name: 01:50:03.597
|    |        pos: 6603.597
|    |         id: 28
+-- Chapter #30
|    |    enabled: 1
|    |       name: 01:55:33.343
|    |        pos: 6933.343
|    |         id: 29
+-- Chapter #31
|    |    enabled: 1
|    |       name: 02:00:07.409
|    |        pos: 7207.409
|    |         id: 30
+-- Chapter #32
|    |    enabled: 1
|    |       name: 02:03:16.055
|    |        pos: 7396.055
|    |         id: 31
+-- Chapter #33
|    |    enabled: 1
|    |       name: 02:06:02.513
|    |        pos: 7562.513
|    |         id: 32
+-- Chapter #34
|    |    enabled: 1
|    |       name: 02:08:42.924
|    |        pos: 7722.924
|    |         id: 33
+-- Chapter #35
|    |    enabled: 1
|    |       name: 02:09:47.405
|    |        pos: 7787.405
|    |         id: 34

0.1

  • Initial release

  • Add some unittests

  • Remove any dependency

  • Keep only video parsers

  • Fork Freevo’s kaa.metadata module (many thanks to its authors)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

enzyme-0.1.tar.gz (70.6 kB view details)

Uploaded Source

File details

Details for the file enzyme-0.1.tar.gz.

File metadata

  • Download URL: enzyme-0.1.tar.gz
  • Upload date:
  • Size: 70.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for enzyme-0.1.tar.gz
Algorithm Hash digest
SHA256 3328143ca079e06f720fc794dd77debd21425fc7fc526cdd85216aa07dd3dcd7
MD5 62a475ed11af7dd05cd0f2b72f4b3545
BLAKE2b-256 faeedb93dd7624ecfb528659200cf3e991c6281568025d4917e44bdfa202f343

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page