No project description provided
Project description
SUBT-AI-TLES
A simple wrapper around LLMs that provides language translation interface for subtitles (.srt).
Predefined implementations
So far OpenAI API is the only supported/pre-implemented 'backend'
Setup required environment variables and then simply import and invoke the function.
import asyncio
from subtaitles import translate_srt_file, Engine, Lang
# use predefined translators from the Engine enum
asyncio.run(
translate_srt_file(
path="/tmp/subtitles.en.srt",
new_path="/tmp/subtitles.de.srt",
translator=Engine.OPEN_AI,
source=Lang.EN,
target=Lang.DE
)
)
# behavior and configuration is controlled via environment variables
# all the used variables are defined int the environment module
from subtaitles import env
Directory mode
A directory mode is included as well that tries to translate ALL the .srt files it can find in the supplied directory
path. Locale extension are used to avoid re-running the translation over and over, e.g.:
If
sub-1.de.srtalready exists in the directory and translation fromen -> deis to be performed on it, the filesub-1.srtwill be skipped altogether.
import asyncio
from subtaitles import Lang, Engine
from subtaitles.filesystem import translate_directory
asyncio.run(
translate_directory(
path="/tmp/data/shows/foo/season-01",
translator=Engine.OPEN_AI,
source=Lang.EN,
target=Lang.DE
)
)
Custom implementations
An arbitrary class that implements the TranslateProtocol can be passed to both
the translate_srt_file() and translate_srt()
import asyncio
from subtaitles import Lang, translate_srt_file
class MyCustomTranslator:
async def translate(
self, text: list[str], language_from: Lang, language_to: Lang,
) -> list[str]:
# <implement whatever floats your boat>
...
asyncio.run(
translate_srt_file(
path="/tmp/subtitles.en.srt",
new_path="/tmp/subtitles.de.srt",
translator=MyCustomTranslator(),
source=Lang.EN,
target=Lang.DE
)
)
CLI
translate_srt_file is exposed as a utility command for command line usage:
translate_subtitles --help
translate_subtitles --engine openai /tmp/subtitles.en.srt /tmp/subtitles.de.srt en de
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file subt_ai_tles-0.0.6.tar.gz.
File metadata
- Download URL: subt_ai_tles-0.0.6.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a9fd937fd73ab313f193f0f8a845f795c0dcd38561eac3f331bbd83d9766586
|
|
| MD5 |
c82b3b1a62d5f668e9347073c703a2aa
|
|
| BLAKE2b-256 |
64b08afb0a24fb3936cf0b39a4eb02a4a8a4652323568ce9889006feb67d597e
|
File details
Details for the file subt_ai_tles-0.0.6-py3-none-any.whl.
File metadata
- Download URL: subt_ai_tles-0.0.6-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30f750c61e3df99bdee71e8a9dfb68c65c8869568ebee2b4878ac3c8592e1dbf
|
|
| MD5 |
4fea158ea6798eebc7869caf00085ae4
|
|
| BLAKE2b-256 |
91ae2ae8393f67bbf324ea21b28e472ee7216387b1163e8c5f675302c7573b6c
|