# 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
<https://github.com/ratoaq2/trakit>
## 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)
Raw data
{
"_id": null,
"home_page": "https://github.com/ratoaq2/trakit",
"name": "trakit",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0.0,>=3.8.1",
"maintainer_email": null,
"keywords": "video, mkv, audio, subtitles, srt, pgs, sdh, cc, sup, sub, metadata, movie, episode, tv, track, shows, series",
"author": "Rato",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/2c/4d/93938a1c55f685cb12176759e645a7d048c8ba07678d98e58e4b29d10955/trakit-0.2.2.tar.gz",
"platform": null,
"description": "# TrakIt\nGuess additional information from track titles\n\n[![Latest\nVersion](https://img.shields.io/pypi/v/trakit.svg)](https://pypi.python.org/pypi/trakit)\n\n[![tests](https://github.com/ratoaq2/trakit/actions/workflows/test.yml/badge.svg)](https://github.com/ratoaq2/trakit/actions/workflows/test.yml)\n\n[![License](https://img.shields.io/github/license/ratoaq2/trakit.svg)](https://github.com/ratoaq2/trakit/blob/master/LICENSE)\n\n - Project page \n <https://github.com/ratoaq2/trakit>\n\n## Info\n\n**TrakIt** is a track name parser.\nIt is a tiny library created to solve a very specific problem.\nIt's very common that video files do not have precise metadata information, \nwhere you can have multiple subtitle tracks tagged as **Portuguese**, \nbut one of them is actually **Brazilian Portuguese**:\n```json lines\n{\n \"codec\": \"SubRip/SRT\",\n \"id\": 19,\n \"properties\": {\n \"codec_id\": \"S_TEXT/UTF8\",\n \"codec_private_length\": 0,\n \"default_track\": false,\n \"enabled_track\": true,\n \"encoding\": \"UTF-8\",\n \"forced_track\": false,\n \"language\": \"por\",\n \"language_ietf\": \"pt\",\n \"number\": 20,\n \"text_subtitles\": true,\n \"track_name\": \"Portugu\u00eas\",\n \"uid\": 160224385584803173\n }\n}\n\n{\n \"codec\": \"SubRip/SRT\",\n \"id\": 20,\n \"properties\": {\n \"codec_id\": \"S_TEXT/UTF8\",\n \"codec_private_length\": 0,\n \"default_track\": false,\n \"enabled_track\": true,\n \"encoding\": \"UTF-8\",\n \"forced_track\": false,\n \"language\": \"por\",\n \"language_ietf\": \"pt\",\n \"number\": 21,\n \"text_subtitles\": true,\n \"track_name\": \"Portugu\u00eas (Brasil)\",\n \"uid\": 1435945803220205\n }\n}\n```\nOr you have multiple audio tracks in **English**,\nbut one of them is **British English** (`British English Forced (PGS)`) and others are **American English**\n(`American English (PGS)`)\n\nGiven a track name, **TrakIt** can guess the language:\n\n```bash\n>> trakit \"Portugu\u00eas (Brasil)\"\n{\n \"language\": \"pt-BR\"\n}\n```\n\n**TrakIt** is also able to identify:\n* SDH: Subtitles for the Deaf or Hard of Hearing\n* Forced flag\n* Closed captions\n* Alternate version tracks\n* Commentary tracks\n\n```bash\n>> trakit \"British English (SDH) (PGS)\"\n{\n \"language\": \"en-GB\",\n \"hearing_impaired\": true\n}\n\n>> trakit \"English CC (SRT)\"\n{\n \"language\": \"en\",\n \"closed_caption\": true\n}\n\n>> trakit \"Cast and Crew Commentary (English AC3 Stereo)\"\n{\n \"language\": \"en\",\n \"commentary\": true\n}\n\n>> trakit \"Fran\u00e7ais Forced (SRT)\"\n{\n \"language\": \"fr\",\n \"forced\": true\n}\n```\n\nAll available CLI options:\n```bash\n>> trakit --help\nusage: trakit [-h] [-l EXPECTED_LANGUAGE] [--debug] [-y] [--version] value\n\npositional arguments:\n value track title to guess\n\noptions:\n -h, --help show this help message and exit\n\nConfiguration:\n -l EXPECTED_LANGUAGE, --expected-language EXPECTED_LANGUAGE\n The expected language to be guessed\n\nOutput:\n --debug Print information for debugging trakit and for reporting bugs.\n -y, --yaml Display output in yaml format\n\nInformation:\n --version show program's version number and exit\n```\n\n\n**TrakIt** is not a release parser. Use [GuessIt](https://github.com/guessit-io/guessit)\n\n**TrakIt** is not a video metadata extractor.\nUse [KnowIt](https://github.com/ratoaq2/knowit).\nKnowIt already uses **trakit** to enhance the extracted information\n\n## Installation\n\n**TrakIt** can be installed as a regular python module by running:\n\n $ [sudo] pip install trakit\n\nFor a better isolation with your system you should use a dedicated\nvirtualenv or install for your user only using the `--user` flag.\n\n## Data\n* Available languages are the same supported by [Diaoul/babelfish](https://github.com/Diaoul/babelfish)\n* Localized country names were fetched from [mledoze/countries](https://github.com/mledoze/countries)\n* Localized language names were fetched from [mozilla/language-mapping-list](https://github.com/mozilla/language-mapping-list)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Guess additional information from track titles",
"version": "0.2.2",
"project_urls": {
"Homepage": "https://github.com/ratoaq2/trakit",
"Repository": "https://github.com/ratoaq2/trakit"
},
"split_keywords": [
"video",
" mkv",
" audio",
" subtitles",
" srt",
" pgs",
" sdh",
" cc",
" sup",
" sub",
" metadata",
" movie",
" episode",
" tv",
" track",
" shows",
" series"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "35843f0d7e86b746f3917df5d807cd8556825b9c028f0fbf63cdb3f941a8ba16",
"md5": "17f7c5fe37e9758753685d445daf365b",
"sha256": "82ea3e6a27c2a053c4d59df4325f78687c6b88a016b181e65294a5d81514f2e7"
},
"downloads": -1,
"filename": "trakit-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "17f7c5fe37e9758753685d445daf365b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0.0,>=3.8.1",
"size": 18841,
"upload_time": "2024-06-23T06:01:54",
"upload_time_iso_8601": "2024-06-23T06:01:54.513083Z",
"url": "https://files.pythonhosted.org/packages/35/84/3f0d7e86b746f3917df5d807cd8556825b9c028f0fbf63cdb3f941a8ba16/trakit-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2c4d93938a1c55f685cb12176759e645a7d048c8ba07678d98e58e4b29d10955",
"md5": "ef6aa0150d3f9c3f8e2ac223f5e84412",
"sha256": "42e8b7af9949620d12647cd4b9801125d04a15a9ad8bb832230b26b78a723700"
},
"downloads": -1,
"filename": "trakit-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "ef6aa0150d3f9c3f8e2ac223f5e84412",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0.0,>=3.8.1",
"size": 17709,
"upload_time": "2024-06-23T06:01:56",
"upload_time_iso_8601": "2024-06-23T06:01:56.757729Z",
"url": "https://files.pythonhosted.org/packages/2c/4d/93938a1c55f685cb12176759e645a7d048c8ba07678d98e58e4b29d10955/trakit-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-23 06:01:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ratoaq2",
"github_project": "trakit",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "trakit"
}