Metadata-Version: 2.4
Name: openbbq
Version: 0.0.1
Summary: Agent-friendly CLI for video translation and subtitle production.
Author: ACAne0320
Author-email: ACAne0320 <nyaashino@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Text Processing :: Linguistic
Requires-Dist: pydantic>=2.13.4
Requires-Dist: rich>=15.0.0
Requires-Dist: typer>=0.26.7
Requires-Dist: yt-dlp>=2026.6.9
Requires-Dist: faster-whisper>=1.2.1 ; extra == 'faster-whisper'
Requires-Dist: mlx-whisper>=0.4.3 ; extra == 'mlx-whisper'
Requires-Dist: pywhispercpp>=1.5.0 ; extra == 'whispercpp'
Requires-Dist: whisperx>=3.8.6 ; extra == 'whisperx'
Requires-Python: >=3.12
Project-URL: Homepage, https://github.com/ACAne0320/OpenBBQ
Project-URL: Repository, https://github.com/ACAne0320/OpenBBQ
Project-URL: Issues, https://github.com/ACAne0320/OpenBBQ/issues
Project-URL: Documentation, https://github.com/ACAne0320/OpenBBQ/tree/main/docs
Provides-Extra: faster-whisper
Provides-Extra: mlx-whisper
Provides-Extra: whispercpp
Provides-Extra: whisperx
Description-Content-Type: text/markdown

# OpenBBQ

[中文说明](README.zh-CN.md) · [Usage Guide](docs/usage.md)

**OpenBBQ** is a command-line tool for agent-driven video translation and subtitle production.

OpenBBQ provides composable tools for video download, audio extraction, ASR transcription, segmentation, translation, review, subtitle export, and subtitle burning.
It does not force one fixed pipeline. The goal is to let an agent choose the right workflow for each task.

## Why OpenBBQ?

In Chinese fansub and creator communities, the process of translating and subtitling foreign-language videos is often called "barbecue".
Raw untranslated material is "raw meat"; the translated, subtitled result is "cooked meat".

OpenBBQ is meant to be an open-source, open subtitle translation platform.

## Quick Start

## Requirements

- Python 3.12 or newer
- [uv](https://docs.astral.sh/uv/), used to install the `openbbq` command and manage Python dependencies
- [ffmpeg](https://www.ffmpeg.org/), used for video download, audio/video merging, audio extraction, and video burning; subtitle burning also needs FFmpeg with `libass` support
- An ASR backend. OpenBBQ currently supports [whisper.cpp](https://github.com/absadiki/pywhispercpp) through its Python binding
- An ASR model. Models are not downloaded with the package. After installation, run `openbbq models list`, then explicitly run `openbbq models pull ...`
- A local desktop browser if the video platform requires login, human verification, or a browser challenge

## For Agent

```markdown
Read the [install guide](https://raw.githubusercontent.com/ACAne0320/OpenBBQ/main/docs/install-agent.md) and help me install [OpenBBQ](https://github.com/ACAne0320/OpenBBQ).
```

## Manual Install

```bash
uv tool install 'openbbq[whispercpp]'
openbbq doctor
openbbq models list
openbbq models pull large-v3-turbo
openbbq doctor
```

## Use

Human workflow:

```bash
openbbq init --workspace workspaces/demo 'https://www.youtube.com/watch?v=...'
cd workspace/demo
openbbq fetch
openbbq extract-audio
openbbq transcribe --model large-v3-turbo --language en --gpu
openbbq segment
openbbq translate init zh
# fill in translations in workspaces/demo/translation.zh.json
openbbq translate check zh
openbbq export --to zh --mode bilingual --format ass --output out/zh.ass
openbbq burn
```

Agent workflow:

```bash
openbbq --json status --workspace workspaces/demo
```

Agents should use `--json` and pass the workspace explicitly with `-w`.
For long-running tasks, poll the workspace state with `openbbq status`.
For subtitle tasks, follow `skills/openbbq-subtitles/SKILL.md`.

For local files, YouTube login, ASS presets, outputs, and command details, see
[docs/usage.md](docs/usage.md).

## Roadmap

[ ] Windows/Linux support
[ ] More ASR backends
[ ] More video platform authentication support
[ ] A visual translation step for people who want to translate manually
[ ] ...

## License

Apache-2.0. See [LICENSE](LICENSE).
