Metadata-Version: 2.4
Name: subconv
Version: 1.1.0
Summary: Async SRT subtitle translator using OpenAI
Project-URL: Homepage, https://github.com/vnniciusg/subconv
Project-URL: Repository, https://github.com/vnniciusg/subconv
Project-URL: Issues, https://github.com/vnniciusg/subconv/issues
License-File: LICENSE
Requires-Python: >=3.13
Requires-Dist: click>=8.3.1
Requires-Dist: loguru>=0.7.3
Requires-Dist: openai>=2.15.0
Requires-Dist: python-dotenv>=1.2.1
Requires-Dist: tenacity>=9.1.2
Description-Content-Type: text/markdown

# SRT Translator

A tool that translates SRT subtitle files to any language using OpenAI's API. It processes subtitles asynchronously in batches for efficient translation while preserving timing and formatting.

## CLI

```bash
subconv input.srt output.srt
```

### Examples

```bash
subconv input.srt output.srt -t "Spanish"
subconv input.srt output.srt -s "English" -t "Japanese"
subconv input.srt output.srt --target-language "French" --source-language "German"
```

### Options

| Option                     | Description                    | Default              |
| -------------------------- | ------------------------------ | -------------------- |
| `-t, --target-language`    | Target language for translation | Brazilian Portuguese |
| `-s, --source-language`    | Source language (optional)     | Auto-detected        |
| `-m, --model`              | OpenAI model                   | gpt-4o-mini          |
| `-c, --concurrent`         | Max concurrent requests        | 5                    |
| `-b, --batch-size`         | Subtitles per batch            | 15                   |

## Library

```python
import asyncio
from pathlib import Path
from subconv import TranslationConfig, TranslationService

config = TranslationConfig(
    input_path=Path("input.srt"),
    output_path=Path("output.srt"),
    target_language="Spanish",
    source_language="English",
)

asyncio.run(TranslationService(config).run())
```

## Environment

```bash
export OPENAI_API_KEY=your-key
```

## License

[MIT](LICENSE)

---

_Tests and documentation generated by Claude xD_
