Project Overview
A small, focused Python utility for downloading audio (MP3) and video (MP4) recordings from council webcast pages hosted on the civico.net platform. Ships with both a one-click GUI and a scriptable CLI, with resumable transfers and cross-platform installers for Windows, macOS and Linux.
The Problem
Civico webcasts are streamed in-page with no download button. Anyone wanting to archive a meeting — journalists, residents, researchers, transcript writers — normally has to dig into browser dev-tools to capture the underlying media, which is awkward and easy to get wrong on long recordings.
The Solution
A single Python tool with two ways to use it: a Tkinter GUI ("paste URL → choose audio or video → click Download") for non-technical users, and a scriptable CLI (--audio-only, --video-only, --output-dir, batch mode) for power users and automation. Interrupted transfers pick up where they left off, so a dropped Wi-Fi connection on a 4-hour council meeting isn't a wasted hour.
Key Features
- GUI mode — paste a webcast URL, pick audio or video, download
- CLI mode — scriptable flags for batch jobs and automation pipelines
- Audio-only or video-only modes for transcript work or full archive
- Resumable downloads — interrupted transfers continue from the byte they stopped on
- Cross-platform 1-click installers (
install.baton Windows,install.shon macOS / Linux) - Tested on Sandwell, Slough and Westminster council webcasts
My Role
Whole project — request flow, resume logic, GUI, CLI argument design, installer scripts, and documentation.
Technology Used
Challenges and Learning
Implementing reliable HTTP range requests for resume across flaky long-running downloads, and building a Tkinter UI that stays responsive while a multi-gigabyte transfer is in flight (background threads, progress streaming with tqdm). Packaging the same script for one-click install on three operating systems without bundling a heavy framework.
Outcome / Value
A practical archival utility for journalists, council monitors and accessibility / transcript workers. Shows ability to ship a focused tool end-to-end — from network protocol details (HTTP ranges) up to a clickable installer the end user can actually run.
Screenshots are being prepared.