Conversation
… config I/O - Fix bare except clause in YouTube.py upload_video (was catching SystemExit/KeyboardInterrupt) - Add max retry limits (5) to recursive generate_script/generate_metadata/generate_prompts to prevent stack overflow - Replace os.system() with subprocess.run() in utils.py and Outreach.py (safer, no shell injection risk) - Add request timeouts (30-60s) to all requests.get() calls in Outreach.py that were missing them - Add subprocess return code checking for CRON jobs in main.py - Cache config.json reads with mtime-based invalidation in config.py (eliminates ~30 redundant file reads per call) - Replace raw print(colored()) calls with status functions (info/success/error/warning) for consistent logging - Narrow exception types: json.JSONDecodeError instead of Exception for JSON parsing, TimeoutException for Selenium waits - Remove unused imports (termcolor.colored from YouTube.py and Twitter.py) - Ensure .mp directory exists before writing images https://claude.ai/code/session_01Ua58n8SZptC1WQf6gfJDpK
New "Quick Generate" mode (option 1 in main menu): - One-prompt video creation: describe your video and get a complete Short - Interactive language picker (12 languages + custom) - TTS provider selection (Edge TTS or Kitten TTS) - Voice browser with language filtering and search - Subtitle style picker (6 presets) - Optional YouTube upload after generation Multi-provider TTS system (src/classes/Tts.py): - Edge TTS: 300+ Microsoft neural voices, free, high quality, many languages - Kitten TTS: 8 local English voices (preserved for offline use) - Voice listing API with language filtering - Automatic format handling (Edge outputs MP3, compatible with full pipeline) Subtitle style presets (YouTube.py): - yellow_bold (classic), white_shadow, neon_green, red_impact, minimal_white, cyan_modern - Configurable via config.json "subtitle_style" key YouTube.for_generation() classmethod: - Creates generation-only instances without browser/Selenium setup - Enables video creation without needing a YouTube account configured Updated config: tts_provider, tts_voice defaults, subtitle_style Added edge-tts to requirements.txt https://claude.ai/code/session_01Ua58n8SZptC1WQf6gfJDpK
…vailable KittenTTS depends on misaki>=0.9.4 which fails to install on some platforms. Since Edge TTS is now the default provider, move KittenTTS to an optional manual install with a clear error message if someone selects it without having it installed. https://claude.ai/code/session_01Ua58n8SZptC1WQf6gfJDpK
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces a new "Quick Generate" feature that enables one-prompt video creation, along with comprehensive multi-provider Text-to-Speech (TTS) support. The changes streamline the video generation workflow and add configuration caching for improved performance.
Key Changes
Quick Generate Feature
quick_generate()function inmain.pythat guides users through a complete video generation workflow in a single sessionMulti-Provider TTS Support
TTSclass to support both Edge TTS (300+ voices, free) and KittenTTS (8 English voices)list_voices()static method with language filtering capability_synthesize_edge()and_synthesize_kitten())tts_providersetting (defaults to "edge_tts")Configuration Improvements
config.pyto avoid repeated file readsget_tts_provider()andget_subtitle_style()configuration functionsconfig.example.jsonwith new TTS and subtitle style settingsYouTube Class Enhancements
YouTube.for_generation()class method to create generation-only instances without browser/upload overheadgenerate_script(),generate_metadata(), andgenerate_prompts()with retry limits (max 5 attempts)UI/UX Improvements
Code Quality
os.system()calls withsubprocess.run()for better error handlingjson.JSONDecodeErrorspecificallytermcolorfrom YouTube.py)Menu Structure
Notable Implementation Details
config.get_subtitle_style()during generation to apply user selectionhttps://claude.ai/code/session_01Ua58n8SZptC1WQf6gfJDpK