Automates the entire flow from raw recording to published YouTube video: extract audio → transcribe (Gemini) → generate title/description/tags (NVIDIA NIM, DeepSeek V4 Flash) → upload to YouTube (resumable, OAuth2) → wait for processing → publish.
Features
- Audio extraction: pulls audio from
.mp4/.mov/.mkvrecordings with ffmpeg. - AI transcription: Gemini transcribes the extracted audio.
- AI metadata generation: NVIDIA NIM (DeepSeek V4 Flash) writes the title, description, and tags from the transcript.
- Resumable YouTube upload: OAuth2-authenticated, resumable upload via the YouTube Data API v3, waits for processing, then publishes.
- Dashboard: Streamlit UI with a "Run pipeline now" button, live per-stage progress, success/failure metrics, charts (outcomes, uploads/day, avg stage duration), and full run history.
- Cron-friendly: drop a video in
incoming/, runpython main.py run, cron it for hands-off automation — processed files move touploaded/.
Stack
Python, Google Gemini API, NVIDIA NIM, YouTube Data API v3, ffmpeg, Streamlit, SQLite (run history tracking).