Bunge Bits Bunge Bits provides convenient summaries of Kenyan National Assembly and Senate proceedings, making legislative information more accessible and digestible. Motivations The driving force behind Bunge Bits is to strengthen Kenya's democracy by making legislative processes more transparent and understandable to all citizens. The aim is to bridge the gap between complex government proceedings and the average Kenyan, fostering increased civic engagement and political awareness. By offering concise, easy-to-digest summaries of legislative sessions, I hope to empower citizens with the knowledge they need to participate more fully in their democracy, hold elected officials accountable, and engage in informed discussions about the issues that affect their lives. Ultimately, Bunge Bits seeks to contribute to a more engaged, informed, and participatory democratic process in Kenya. Development Progress ytInitialData parser: Parsing logic that parses scraped data from youtube parser: Parsing logic that parses scraped data from youtube stream_datastore : Sqlite Postgres database bindings for storing, retrieving and modifying stream data : Postgres database bindings for storing, retrieving and modifying stream data yt-dlp bindings: Bindings to interact with the yt-dlp cli as well as some utilities to interact with video and vtt data bindings: Bindings to interact with the yt-dlp cli as well as some utilities to interact with video and vtt data ffmpeg bindings: Bindings to complement the Ytdlp bindings for the purpose of processing audio bindings: Bindings to complement the Ytdlp bindings for the purpose of processing audio stream_pulse_cron : A cron job that periodically fetches and processes streams : A cron job that periodically fetches and processes streams stream_digest : Functions that make it possible to efficiently process transcripts in chunks : Functions that make it possible to efficiently process transcripts in chunks LLMs: A service that interacts with OpenAI's Whisper and ChatGPT 4o to handle transcribing and summarizing the downloaded audio LLMs: A service that interacts with OpenAI's Whisper and ChatGPT 4o to handle transcribing and summarizing the downloaded audio Manual publish flag – is_published field added to each stream for editorial control. Yes it sucks, but it's necessary for now since LLMs don't seem to get everything 100% right. Only a temporary step for now though. Manual publish flag – field added to each stream for editorial control. Yes it sucks, but it's necessary for now since LLMs don't seem to get everything 100% right. Only a temporary step for now though. Web App: The end user interface that will display the summarized content #3 Web App: The end user interface that will display the summarized content #3 Email Newsletter – Periodic delivery of new summaries to subscribers Development Setup Contribution See the contribution guideline. Blog Posts Support the Project Your support helps cover: Cloud hosting and database infrastructure OpenAI Whisper + GPT 4o API usage Sponsorship is available via GitHub Sponsorship or Buy Me a Coffee. Every bit helps to keep Kenyan legislative content accessible to all.