{"id":50682577,"url":"https://github.com/redatman/transcriber","last_synced_at":"2026-06-08T20:02:01.643Z","repository":{"id":355038595,"uuid":"1226519370","full_name":"RedAtman/transcriber","owner":"RedAtman","description":"A fast video transcription CLI tool powered by whisper.cpp. Extracts audio from video files and transcribes it to text with GPU acceleration.","archived":false,"fork":false,"pushed_at":"2026-05-01T16:00:28.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-01T16:10:46.476Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RedAtman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-01T14:01:25.000Z","updated_at":"2026-05-01T16:00:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/RedAtman/transcriber","commit_stats":null,"previous_names":["redatman/transcriber"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/RedAtman/transcriber","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedAtman%2Ftranscriber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedAtman%2Ftranscriber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedAtman%2Ftranscriber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedAtman%2Ftranscriber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RedAtman","download_url":"https://codeload.github.com/RedAtman/transcriber/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedAtman%2Ftranscriber/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34078019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-08T20:01:57.159Z","updated_at":"2026-06-08T20:02:01.633Z","avatar_url":"https://github.com/RedAtman.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# transcriber\n\nA fast video transcription CLI tool powered by whisper.cpp. Extracts audio from video files and transcribes it to text with GPU acceleration.\n\n## Features\n\n- **Video → Audio → Text**: Automatic audio extraction via FFmpeg\n- **GPU Accelerated**: Metal (macOS M*), Vulkan (NVIDIA), CUDA, or CPU fallback\n- **Multiple Output Formats**: TXT, SRT (subtitle), JSON (with word-level timestamps), MD (Markdown with YAML front matter)\n- **Batch Processing**: Transcribe entire directories recursively\n- **Model Quantization**: Q4_K/Q5_K/Q6_K/Q8_0 for speed/size tradeoffs\n- **Configurable**: YAML configuration file with CLI argument overrides\n- **Progress Reporting**: Real-time progress bars for downloads and transcription\n\n## Installation\n\n### Prerequisites\n\n- **FFmpeg**: Required for audio extraction\n  - macOS: `brew install ffmpeg`\n  - Ubuntu: `sudo apt install ffmpeg`\n  - Windows: Download from https://ffmpeg.org/\n\n### Homebrew (macOS / Linux)\n\n```bash\nbrew tap RedAtman/tap\nbrew install transcriber\n```\n\n\u003e Taps into [RedAtman/homebrew-tap](https://github.com/RedAtman/homebrew-tap). Formula is automatically updated on each release.\n\n### From Source\n\n```bash\ngit clone \u003crepo-url\u003e\ncd transcriber\ncargo build --release\n```\n\nThe binary is at `./target/release/transcriber`.\n\n## Usage\n\n### Single File Transcription\n\n```bash\n# Transcribe with default settings (base model, txt output)\ntranscriber -i video.mp4\n\n# Specify model and language\ntranscriber -i video.mp4 -m medium -l zh\n\n# Custom output directory and SRT format\ntranscriber -i video.mp4 -o ./subtitles --format srt\n```\n\n### Batch Processing\n\n```bash\n# Transcribe all videos in a directory\ntranscriber -d ./videos\n\n# Skip already-transcribed files\ntranscriber -d ./videos --skip-existing\n\n# Multiple output formats\ntranscriber -d ./videos --format \"txt,srt,json\"\n```\n\n### Inference Parameters\n\n```bash\n# Initial prompt for decoder context\ntranscriber -i video.mp4 --initial-prompt \"technical terms\"\n\n# Sampling temperature (0.0 = deterministic, 1.0 = more random)\ntranscriber -i video.mp4 --temperature 0.2\n\n# Suppress non-speech tokens\ntranscriber -i video.mp4 --suppress-non-speech\n\n# No-speech detection threshold\ntranscriber -i video.mp4 --no-speech-threshold 0.5\n\n# Split on word boundaries\ntranscriber -i video.mp4 --split-on-word\n\n# Combined example\ntranscriber -i video.mp4 -m medium -l en --initial-prompt \"technology\" --temperature 0.3\ntranscriber -i video.mp4 -m medium -l zh --initial-prompt \"科技\" --temperature 0.3\n```\n\n### Media Metadata\n\n```bash\n# Add custom metadata to the output (stored in Markdown YAML front matter)\ntranscriber -i video.mp4 --format md --meta title=\"My Talk\" --meta location=Beijing\n\n# Media metadata is auto-detected via ffprobe when using md format:\n#   - source: filename, size, format, bitrate, duration\n#   - video: codec, resolution, FPS\n#   - audio: codec, sample rate, channels\n```\n\n### Configuration\n\n```bash\n# Generate default config file\ntranscriber init\n\n# Use custom config\ntranscriber -i video.mp4 --config ./my-config.yaml\n```\n\nDefault config location: `~/.config/transcriber/config.yaml`\n\n### Available Models\n\n| Model | Size | Description |\n|-------|------|-------------|\n| tiny | 75 MB | Fastest, lowest quality |\n| base | 148 MB | Default, balanced |\n| small | 488 MB | Better quality |\n| medium | 1.5 GB | High quality |\n| large-v3-turbo | 800 MB | Best quality/speed ratio |\n\n## Output Formats\n\n- **TXT**: Plain text, one segment per line\n- **SRT**: SubRip subtitle format with timestamps\n- **JSON**: Structured data with word-level timing and metadata\n- **MD**: Markdown with YAML front matter — includes auto-detected media metadata (source, video, audio info), custom metadata, and plain text body (no timestamps)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredatman%2Ftranscriber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredatman%2Ftranscriber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredatman%2Ftranscriber/lists"}