Metadata-Version: 2.1 Name: trakit Version: 0.2.1 Summary: Guess additional information from track titles Home-page: https://github.com/ratoaq2/trakit License: MIT Keywords: video,mkv,audio,subtitles,srt,pgs,sdh,cc,sup,sub,metadata,movie,episode,tv,track,shows,series Author: Rato Requires-Python: >=3.8.1,<4.0.0 Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.8 Classifier: Topic :: Multimedia :: Video Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Dist: babelfish (>=0.6.0,<0.7.0) Requires-Dist: pyyaml (>=6.0,<7.0) Requires-Dist: rebulk (>=3.1.0,<4.0.0) Project-URL: Repository, https://github.com/ratoaq2/trakit Description-Content-Type: text/markdown # TrakIt Guess additional information from track titles [![Latest Version](https://img.shields.io/pypi/v/trakit.svg)](https://pypi.python.org/pypi/trakit) [![tests](https://github.com/ratoaq2/trakit/actions/workflows/test.yml/badge.svg)](https://github.com/ratoaq2/trakit/actions/workflows/test.yml) [![License](https://img.shields.io/github/license/ratoaq2/trakit.svg)](https://github.com/ratoaq2/trakit/blob/master/LICENSE) - Project page ## Info **TrakIt** is a track name parser. It is a tiny library created to solve a very specific problem. It's very common that video files do not have precise metadata information, where you can have multiple subtitle tracks tagged as **Portuguese**, but one of them is actually **Brazilian Portuguese**: ```json lines { "codec": "SubRip/SRT", "id": 19, "properties": { "codec_id": "S_TEXT/UTF8", "codec_private_length": 0, "default_track": false, "enabled_track": true, "encoding": "UTF-8", "forced_track": false, "language": "por", "language_ietf": "pt", "number": 20, "text_subtitles": true, "track_name": "Português", "uid": 160224385584803173 } } { "codec": "SubRip/SRT", "id": 20, "properties": { "codec_id": "S_TEXT/UTF8", "codec_private_length": 0, "default_track": false, "enabled_track": true, "encoding": "UTF-8", "forced_track": false, "language": "por", "language_ietf": "pt", "number": 21, "text_subtitles": true, "track_name": "Português (Brasil)", "uid": 1435945803220205 } } ``` Or you have multiple audio tracks in **English**, but one of them is **British English** (`British English Forced (PGS)`) and others are **American English** (`American English (PGS)`) Given a track name, **TrakIt** can guess the language: ```bash >> trakit "Português (Brasil)" { "language": "pt-BR" } ``` **TrakIt** is also able to identify: * SDH: Subtitles for the Deaf or Hard of Hearing * Forced flag * Closed captions * Alternate version tracks * Commentary tracks ```bash >> trakit "British English (SDH) (PGS)" { "language": "en-GB", "hearing_impaired": true } >> trakit "English CC (SRT)" { "language": "en", "closed_caption": true } >> trakit "Cast and Crew Commentary (English AC3 Stereo)" { "language": "en", "commentary": true } >> trakit "Français Forced (SRT)" { "language": "fr", "forced": true } ``` All available CLI options: ```bash >> trakit --help usage: trakit [-h] [-l EXPECTED_LANGUAGE] [--debug] [-y] [--version] value positional arguments: value track title to guess options: -h, --help show this help message and exit Configuration: -l EXPECTED_LANGUAGE, --expected-language EXPECTED_LANGUAGE The expected language to be guessed Output: --debug Print information for debugging trakit and for reporting bugs. -y, --yaml Display output in yaml format Information: --version show program's version number and exit ``` **TrakIt** is not a release parser. Use [GuessIt](https://github.com/guessit-io/guessit) **TrakIt** is not a video metadata extractor. Use [KnowIt](https://github.com/ratoaq2/knowit). KnowIt already uses **trakit** to enhance the extracted information ## Installation **TrakIt** can be installed as a regular python module by running: $ [sudo] pip install trakit For a better isolation with your system you should use a dedicated virtualenv or install for your user only using the `--user` flag. ## Data * Available languages are the same supported by [Diaoul/babelfish](https://github.com/Diaoul/babelfish) * Localized country names were fetched from [mledoze/countries](https://github.com/mledoze/countries) * Localized language names were fetched from [mozilla/language-mapping-list](https://github.com/mozilla/language-mapping-list)