Yet Another Audio To Video
Audio and cover art to MP4.
yaatv is a small local CLI for producers who need a YouTube upload file from a finished track and cover image. No watermarks. No limits. No cloud.
yaatv -a track.flac -i cover.jpg -o output.mp4 --resolution 1440p
python -m yaatv --audio assets/samples/yaatv-sample.wav --image docs/assets/yaatv-sample.jpg --output docs/assets/yaatv-sample.mp4 --resolution 1080p --no-warn
Download
Use the release asset that matches your system. FFmpeg and FFprobe must already be installed.
| System | Asset | Command |
|---|---|---|
| Windows x64 | yaatv-windows-x64.exe |
.\yaatv-windows-x64.exe --version |
| Linux x64 | yaatv-linux-x64 |
./yaatv-linux-x64 --version |
| macOS x64 | yaatv-macos-x64 |
./yaatv-macos-x64 --version |
The macOS build is unsigned. Apple Silicon Macs may need Rosetta. Open the latest release.
Usage
The short command uses artist and title metadata for the output name when tags are available. Otherwise it uses the source file name.
yaatv -a track.flac -i cover.jpg
yaatv -a track.wav -i cover.png -o upload.mp4 --resolution 4k
yaatv -a track.mp3 -i art.jpg --pad 2
What yaatv writes
The defaults are chosen for static-image music uploads and checked after encoding.
- AAC at 48 kHz and 320 kbps or higher is copied without re-encoding.
- Other audio is encoded as AAC-LC 384 kbps at 48 kHz.
- Video uses H.264, 1 fps, CRF 16, yuv420p, BT.709 color metadata, and
+faststart. - Cover art keeps its aspect ratio. yaatv pads with black instead of stretching the image.
- Finished files are verified with FFprobe before the CLI reports success.
Requirements
yaatv calls the FFmpeg tools on your PATH. Install FFmpeg first, then run these checks from your terminal.
ffmpeg -version
ffprobe -version
Source
yaatv is MIT licensed. The source code, tests, CI workflow, and release builds are on GitHub.