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

News

0.2

release date: 2012-03-24 * Add some documentation * Small code clean up * Improve setup.py * Make enzyme usable in place (even if not in sys.path)

0.1

release date: 2011-12-04 * 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.2.tar.gz (70.6 kB view hashes)

Uploaded Source

Supported by

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