Facebook Live is popular for raw, mobile-first protest coverage by independent journalists. Good for real-time updates from the ground, but discovery and capture are manual-heavy.
Current Limitations (Why not automated like YouTube)
- Strong auth walls and login requirements for reliable access to lives.
- No public persistent embed/player API comparable to YT IFrame (embeds are limited and often require user interaction).
- yt-dlp can sometimes pull video, but live HLS is inconsistent; chat scraping is brittle.
- Discovery relies on Firecrawl profile scrapes + agent semantic/X searches rather than clean APIs.
- Ephemeral nature of some lives + platform changes make automation fragile.
How to Import Video Feeds
- Discovery: Use agent tools (x_keyword_search from:handle + "live", Firecrawl on FB profiles) or manual search "Georgia Fort live". Cross-reference with sources.json.
- Capture: yt-dlp on the live URL when available (may need cookies/login for some). Fall back to browser recording or manual upload.
- Transcripts: Feed audio to Whisper via the research pipeline (see live_stream_listener.py pattern, adapt for FB URLs).
- Chat/Intel: Manual note-taking or third-party tools; add to research/tips/ or alerts.log for generate-data.py.
- Site Integration: Add entry to research/active_protest_streams.json with platform: "facebook". Run generate-data.py. Current UI shows as linked source (full player requires custom work).
- Monitor via browser tabs or tools like the protest_chat_monitor for related discussion.