How mraliraza142/finance-video-bot works
finance-video-bot creates and publishes daily personal-finance videos in two parallel formats: long-form YouTube videos and vertical Shorts. Each entry point checks YouTube authorization, generates a script, creates scene voiceovers and stock footage, assembles the finished video, then uploads it. Script generation can use business headlines or evergreen topics, with a wallet-relevance check on news-based scripts. The sampled code shows the generation and media steps; the long-form TTS implementation was not sampled, so its internal behavior is not detailed here.
Main entry points: main_short.py Short pipeline · main_long.py Long pipeline · assemble_video_short.py Short assembly · assemble_video_long.py Long assembly
Components 26
Pipeline orchestration
- Short pipeline
main_short.py - Long pipeline
main_long.py
Script generation
- Short script
generate_script_short.py - Long script
generate_script_long.py - Short script JSON
generate_script_short.py - Long script JSON
generate_script_long.py
Media production
- Short voiceover
tts_gen_short.py - Long voiceover
tts_gen_long.py - Short audio files
tts_gen_short.py - Long audio files
tts_gen_long.py - Short footage
fetch_footage_short.py - Long footage
fetch_footage_long.py - Short clips
fetch_footage_short.py - Long clips
fetch_footage_long.py - Short assembly
assemble_video_short.py - Long assembly
assemble_video_long.py - Short video
assemble_video_short.py - Long video
assemble_video_long.py
YouTube publishing
- Short uploader
upload_youtube_short.py - Long uploader
upload_youtube_long.py
Other components
- Workflow trigger
- Gemini
- NewsAPI
- Edge TTS
- Pexels
- YouTube
Connections 43
- Workflow trigger → Short pipeline: starts
- Workflow trigger → Long pipeline: starts
- Short pipeline → Short uploader: checks auth
- Short pipeline → Short script: calls
- Short pipeline → Short voiceover: calls
- Short pipeline → Short footage: calls
- Short pipeline → Short assembly: calls
- Short pipeline → Short uploader: calls
- Long pipeline → Long uploader: checks auth
- Long pipeline → Long script: calls
- Long pipeline → Long voiceover: calls
- Long pipeline → Long footage: calls
- Long pipeline → Long assembly: calls
- Long pipeline → Long uploader: calls
- Short script → NewsAPI: fetches headlines
- Short script → Gemini: generates script
- Short script → Short script JSON: writes
- Long script → NewsAPI: fetches headlines
- Long script → Gemini: generates script
- Long script → Long script JSON: writes
- Short script JSON → Short voiceover: reads
- Short voiceover → Edge TTS: synthesizes speech
- Short voiceover → Short audio files: writes
- Long script JSON → Long voiceover: reads
- Long voiceover → Long audio files: writes
- Short script JSON → Short footage: reads keywords
- Short footage → Pexels: searches and downloads
- Short footage → Short clips: writes
- Long script JSON → Long footage: reads keywords
- Long footage → Pexels: searches and downloads
- Long footage → Long clips: writes
- Short script JSON → Short assembly: reads
- Short audio files → Short assembly: reads
- Short clips → Short assembly: reads
- Short assembly → Short video: writes
- Long script JSON → Long assembly: reads
- Long audio files → Long assembly: reads
- Long clips → Long assembly: reads
- Long assembly → Long video: writes
- Short video → Short uploader: uploads
- Short uploader → YouTube: publishes
- Long video → Long uploader: uploads
- Long uploader → YouTube: publishes