How daryllundy/whisper-video-to-text works
Whisper Video to Text is a local-first media transcription tool with CLI and web interfaces. Both feed a shared pipeline that optionally downloads media, normalizes it to WAV, transcribes locally with Whisper, and renders requested text or subtitle formats. The web interface additionally accepts uploads, tracks in-memory jobs, streams progress, and serves transcript downloads and history. Edges follow sampled calls or README statements; web wiring is only partially sampled, so undocumented details are omitted.
Main entry points: views.py Web routes · pipeline.py Shared pipeline · app.js Web interface · convert.py Media normalization
Components 16
User interfaces
- CLI
whisper_video_to_text/cli.py - Web interface
whisper_video_to_text/web/static/app.js - Web app and page
whisper_video_to_text/web/main.py - Web routes
whisper_video_to_text/web/views.py
Transcription workflow
- Shared pipeline
whisper_video_to_text/pipeline.py - URL download
whisper_video_to_text/download.py - Media normalization
whisper_video_to_text/convert.py - Transcription and rendering
whisper_video_to_text/transcribe.py
Web jobs and results
- Job state and SSE
whisper_video_to_text/web/progress.py - Uploads and transcripts
whisper_video_to_text/web/views.py
Local and external tools
- yt-dlp
- ffmpeg
- Whisper library
- CLI output files
Other components
- CLI user
- Web user
Connections 20
- CLI user → CLI: runs
whisper_video_to_text/cli.py - CLI → Shared pipeline: submits request
whisper_video_to_text/cli.py - Web user → Web interface: uses
- Web interface → Web routes: starts jobs
whisper_video_to_text/web/static/app.js - Web interface → Web routes: requests history
whisper_video_to_text/web/static/app.js - Web app and page → Web routes: registers routes
whisper_video_to_text/web/main.py - Web app and page → Media normalization: gets media types
whisper_video_to_text/web/main.py - Web routes → Shared pipeline: runs transcription
README.md - Shared pipeline → URL download: downloads optionally
whisper_video_to_text/pipeline.py - Shared pipeline → Media normalization: normalizes media
whisper_video_to_text/pipeline.py - Shared pipeline → Transcription and rendering: transcribes and renders
whisper_video_to_text/pipeline.py - Shared pipeline → CLI output files: writes outputs
whisper_video_to_text/pipeline.py - URL download → yt-dlp: invokes
whisper_video_to_text/download.py - Media normalization → ffmpeg: runs conversion
whisper_video_to_text/convert.py - Transcription and rendering → Whisper library: loads and runs model
whisper_video_to_text/transcribe.py - Web routes → Uploads and transcripts: saves uploads
whisper_video_to_text/web/views.py - Web routes → Uploads and transcripts: serves transcripts
whisper_video_to_text/web/views.py - Web routes → Job state and SSE: updates job state
whisper_video_to_text/web/views.py - Web routes → Job state and SSE: streams job events
whisper_video_to_text/web/views.py - Web interface → Web routes: opens progress stream
README.md