- New threads/threads_api.py: fetch posts + replies via Threads Graph API
- Endpoint: graph.threads.net/v1.0
- Auth: access_token from config
- Supports: specific post URL/ID or fetch user's recent threads
- Filters replies by min/max length and blocked words
- Returns dict compatible with existing TTS + video pipeline
- main.py: route through get_threads_posts() instead of Reddit
- Reddit import commented out (not deleted)
- Renamed POST_ID → POST_URL
- Removed ResponseException handler (PRAW-specific)
- Uses config[threads][thread][post_id] for batch processing
- config template: added [threads.creds] and [threads.thread] sections
Reddit code preserved in repo for reference but no longer called.
https://claude.ai/code/session_01G67vV3sJLXtm2q9r9FcF7L
- New utils/checkpoint.py: save/load/clear checkpoint state per reddit_id
- run_step() wraps each pipeline step with:
- Skip if already completed (resume from crash)
- Auto-retry up to 3 times with exponential backoff
- Save checkpoint on success, log error on failure
- main.py: Pipeline now uses 6 checkpointed steps:
1. fetch_reddit 2. generate_tts 3. take_screenshots
4. download_background 5. chop_background 6. make_final_video
- Checkpoint cleared on successful completion
- Shows resume status when restarting from checkpoint
https://claude.ai/code/session_01G67vV3sJLXtm2q9r9FcF7L
1. reddit/subreddit.py: passkey= → password= (PRAW correct param name)
2. reddit/subreddit.py: bare except → Exception with sys.exit(1)
Prevents UnboundLocalError when reddit object not created
3. screenshot_downloader.py: NSFW hardcoded #t3_12hmbug selector →
generic button selector that works with any NSFW post
4. final_video.py: h264_nvenc hardcoded → auto-detect GPU encoder,
fallback to libx264 for machines without NVIDIA GPU
https://claude.ai/code/session_01G67vV3sJLXtm2q9r9FcF7L
- Replace browser.launch() + new_context() with launch_persistent_context()
- Browser profile saved in ./assets/browser_profile/ directory
- Cookies, login state, and settings persist between runs
- Check if already logged in before attempting login (avoids redundant login)
- Only logs in again if session was lost or first time running
- Fixes issue of opening new profile each time instead of reusing existing profile with login