You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
5.1 KiB
180 lines
5.1 KiB
10 months ago
|
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
|
||
|
<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)
|
||
|
|