Sign inSign up

chryses/audiomedia-checker

By chryses

โ€ขUpdated about 1 month ago

Automated audio language verification tool using Whisper AI to detect incorrect video metadata

Image
0

2.0K

chryses/audiomedia-checker repository overview

โ AudioMedia Checker

AI-powered audio track language detection and automatic tagging for video files using OpenAI Whisper.

โ ๐Ÿš€ Quick Start

# Analyze single file
docker run --rm \
  -v /path/to/movies:/data \
  chryses/audiomedia-checker:latest \
  --file "/data/Movie.mkv"

# Recursive folder analysis
docker run --rm \
  -v /path/to/library:/data \
  chryses/audiomedia-checker:latest \
  --folder "/data" \
  --recursive

# GPU-accelerated (10x faster)
docker run --rm --gpus all \
  -v /path/to/library:/data \
  chryses/audiomedia-checker:latest \
  --gpu \
  --folder "/data" \
  --recursive

โ ๐Ÿ“– What It Does

This Docker container automatically:

  • โœ… Detects audio track languages using OpenAI Whisper AI
  • โœ… Updates language metadata in MKV files
  • โœ… Processes single files or entire folder trees
  • โœ… Analyzes only untagged tracks (or all with --check-all-tracks)
  • โœ… Supports 100+ languages with configurable confidence
  • โœ… GPU acceleration for 5-10x faster processing
  • โœ… Safe dry-run mode for testing

โ โš™๏ธ Key Arguments

ArgumentDescriptionExample
--fileSingle file path--file "/data/Movie.mkv"
--folderDirectory to process--folder "/data/Movies"
--recursiveSearch depth (0=unlimited)--recursive 0
--confidenceDetection threshold (0-100)--confidence 70
--modelWhisper model size--model base
--gpuEnable GPU acceleration--gpu
--dry-runTest without modifications--dry-run
--force-languageOverride detection--force-language ita
--check-all-tracksAnalyze all tracks--check-all-tracks
--verboseDetailed logging--verbose

โ ๐ŸŽฏ Whisper Models

ModelSizeSpeedAccuracyUse Case
tiny39MBโšกโšกโšกโญโญQuick tests
base74MBโšกโšกโญโญโญDefault
small244MBโšกโญโญโญโญBetter accuracy
medium769MB๐ŸŒโญโญโญโญโญHigh accuracy
large1.5GB๐ŸŒ๐ŸŒโญโญโญโญโญMaximum accuracy

โ ๐Ÿ“ Supported Formats

โ Fully Supported (Read + Write)
  • โœ… .mkv - Metadata updates applied
โ Read-Only (Dry-Run Mode)
  • ๐Ÿ“– .mp4, .avi, .mov, .m4v, .flv, .wmv, .webm
  • Detection works, but no tag modifications

โ ๐Ÿ’ก Usage Examples

โ Basic Analysis
docker run --rm \
  -v /media/downloads:/data \
  chryses/audiomedia-checker:latest \
  --file "/data/MyMovie.mkv" \
  --verbose
โ Recursive with Custom Settings
docker run --rm \
  -v /media/library:/library \
  chryses/audiomedia-checker:latest \
  --folder "/library" \
  --recursive \
  --confidence 75 \
  --model small
โ Force Italian Language
docker run --rm \
  -v /media/italian:/data \
  chryses/audiomedia-checker:latest \
  --folder "/data" \
  --force-language ita

โš ๏ธ Warning: --force-language applies to ALL untagged tracks. Use with caution!

โ GPU Acceleration
docker run --rm --gpus all \
  -v /media/library:/data \
  chryses/audiomedia-checker:latest \
  --gpu \
  --folder "/data" \
  --recursive \
  --model medium

Requirements: NVIDIA GPU + NVIDIA Container Toolkitโ 

โ Safe Dry-Run Test
docker run --rm \
  -v /media/test:/data \
  chryses/audiomedia-checker:latest \
  --dry-run \
  --folder "/data" \
  --check-all-tracks \
  --verbose

โ ๐Ÿ”ง Integration Examples

โ Post-Download Script
#!/bin/bash
docker run --rm \
  -v "$DOWNLOAD_DIR:/data" \
  chryses/audiomedia-checker:latest \
  --file "/data/$FILENAME"
โ Cron Job (Daily Scan)
0 2 * * * docker run --rm -v /media:/data chryses/audiomedia-checker:latest --folder "/data" --recursive
โ Sonarr/Radarr Custom Script
docker run --rm \
  -v "$(dirname "$sonarr_episodefile_path"):/data" \
  chryses/audiomedia-checker:latest \
  --file "/data/$(basename "$sonarr_episodefile_path")"

โ ๐ŸŒ Language Support

100+ languages detected automatically using ISO 639-2 codes:

  • ๐Ÿ‡ฌ๐Ÿ‡ง eng (English)
  • ๐Ÿ‡ฎ๐Ÿ‡น ita (Italian)
  • ๐Ÿ‡ซ๐Ÿ‡ท fra (French)
  • ๐Ÿ‡ช๐Ÿ‡ธ spa (Spanish)
  • ๐Ÿ‡ฉ๐Ÿ‡ช deu (German)
  • ๐Ÿ‡ฏ๐Ÿ‡ต jpn (Japanese)
  • ๐Ÿ‡ฐ๐Ÿ‡ท kor (Korean)
  • ๐Ÿ‡ท๐Ÿ‡บ rus (Russian)
  • ๐Ÿ‡จ๐Ÿ‡ณ chi (Chinese)
  • ...and 90+ more

Use --help-languages to see full list.

โ โš ๏ธ Important Notes

โ File Modifications
  • โœ… MKV files modified in-place (no backup)
  • โœ… Only metadata changed (streams untouched)
  • ๐Ÿ’ก Test with --dry-run first
โ Performance
  • ๐ŸŒ CPU: ~15-30s per file (base model)
  • ๐Ÿš€ GPU: ~3-5s per file (5-10x faster)
  • ๐Ÿ“Š Larger models = better accuracy, slower speed
โ Resource Requirements
ModelRAMGPU VRAM
tiny/base2GB1GB
small4GB2GB
medium8GB5GB
large16GB10GB

โ ๐Ÿ› Troubleshooting

โ GPU Not Working
# Test NVIDIA runtime
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi

# If fails, install NVIDIA Container Toolkit
# https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/
โ Permission Errors
# Run as your user
docker run --rm --user $(id -u):$(id -g) \
  -v /media:/data \
  chryses/audiomedia-checker:latest ...
โ Low Confidence
  1. Try larger model: --model medium
  2. Lower threshold: --confidence 50
  3. Use --force-language as fallback

โ ๐Ÿ—๏ธ Supported Architectures

  • โœ… linux/amd64 (x86_64)
  • โœ… linux/arm64 (ARM 64-bit)

โ ๐Ÿ“š Full Documentation

GitHub: Jorman/Scripts/AudioMediaCheckerโ 

Complete README with advanced usage, troubleshooting, and integration examples.

โ ๐Ÿ™ Powered By

โ ๐Ÿ“„ License

GNU General Public License v3.0

โ ๐Ÿ’ฌ Support


Made with โค๏ธ for audio perfectionists

Auto-built via GitHub Actions | Source: GitHubโ 

Tag summary

Content type

Image

Digest

sha256:a3bf8304eโ€ฆ

Size

2.4 GB

Last updated

about 1 month ago

docker pull chryses/audiomedia-checker