Behind the archive
Methodology and Technology
Methodology
The filmography
We started with TMDb (The Movie Database), which contains a lot of David Attenborough’s TV work going back to Zoo Quest in 1954. Using the API, we pulled every TV series where Attenborough is in it, then grabbed the full episode list for each one, and as much related detail as possible (air dates, overviews, community ratings). TMDb also very helpfully provides “Where to watch” data via its JustWatch integration which gives us the streaming options for the UK and the US and felt useful to incorporate, so users can go right to the page for a given episode.
Images
TMDb does not provide episode-level stills, but TheTVDB does. We used a script to match each TMDb episode to its TVDB counterpart by show name and episode number, then grabbed the URL for each one.
IMDb ratings
TMDb’s ratings are pretty skewed and can be few and far between so we cross-referenced them with IMDb ratings where possible.
AI tagging with Claude
Each episode was passed to Claude (Anthropic’s AI) with its title and overview, which extracted structured tags across seven categories: animals, plants, habitats, locations, natural phenomena, human topics, and themes. Tags were then normalised — “lions” and “lion” collapsed into one — and stored alongside each episode record.
Technology
Stack
The site is built with Next.js and Tailwind CSS, deployed on Vercel. All episode data lives in a static JSON file — no database, no backend. Search runs entirely in the browser using Fuse.js, a fuzzy-search library that indexes ~4,900 records client-side on first load. The data pipeline runs as a set of Python scripts offline, with the result committed into the repository.
Caveats
This archive depends on TMDb’s data quality, which varies a lot. AI-generated tags can occasionally be wrong, especially where episode information is sparse. If you spot an error, the underlying data is open and fixable — you can let me know and I’d be happy to fix anything!