A browser extension that displays film aspect ratios on Letterboxd by fetching technical specifications from IMDb.
- On-Page Badge - Displays aspect ratio next to the film's runtime
- Extension Icon Badge - Shows the current film's aspect ratio on the toolbar icon
- Per-Tab Tracking - Maintains separate data for each open film tab
- Smart Caching - Caches results for 30 days to minimize IMDb requests
- Multiple Ratio Support - Displays all available aspect ratios with type names (e.g., "2.39:1 (Scope)")
- Clickable Badge - Links directly to IMDb Technical Specs page
- Clean UI - Modern popup interface with real-time status and statistics
Node.js installed (uses built-in modules only, no npm dependencies required)
Chrome:
node build.js chromeThen load the extension: Chrome → Extensions → Developer Mode → Load unpacked → Select dist/chrome/
Firefox:
node build.js firefoxThen load the extension: Firefox → about:debugging → Load Temporary Add-on → Select dist/firefox/manifest.json
Build both browsers: node build.js both
Visit any Letterboxd film page (e.g., The Dark Knight) to see:
- Aspect ratio badge next to the runtime
- Ratio displayed on the extension toolbar icon
- Popup showing current film, aspect ratio, and statistics
Built with Manifest V3 for Chrome and Firefox compatibility.
Flow:
- Content script detects Letterboxd film page and extracts IMDb ID
- Background worker fetches technical specs from IMDb
- Parser extracts and categorizes aspect ratios
- Results cached for 30 days
- Badge injected on page and icon updated
Project Structure:
filmratio/
├── common/ # Shared source files
│ ├── src/ # Scripts
│ ├── styles/ # CSS
│ ├── icons/ # Extension icon
│ └── popup.* # Popup interface
├── build.js # Build script
└── dist/ # Build outputs
├── chrome/
└── firefox/
- Fetches from IMDb technical specs page via standard GET requests
- 30-day cache minimizes requests (~1 per film per user per month)
- Only fetches when user visits a Letterboxd page
- No automated bulk scraping or crawling
- No tracking, analytics, or user data collection
- All data stored locally in browser storage
- Direct communication with IMDb (no intermediary servers)
- Open source and auditable
- Edit files in
common/directory - Build:
node build.js chrome(orfirefox, orboth) - Load extension in browser
- Test on Letterboxd film pages
- Reload extension after changes
Console logs are prefixed with [FilmRatio].
Chrome:
- Content script: F12 on Letterboxd page
- Background:
chrome://extensions/→ Service Worker → Inspect
Firefox:
- Content script: F12 on Letterboxd page
- Background:
about:debugging→ Inspect
- The Dark Knight - Multiple ratios (IMAX + Scope)
- Harakiri - 1.37:1 (Academy)
- Grave of the Fireflies - 1.85:1
Contributions welcome! Please:
- Edit files in
common/directory only (notdist/) - Test on both browsers:
node build.js both - Test on multiple films including edge cases
- Maintain console logging for debugging
- Update documentation for new features
GNU General Public License v3.0 (GPL-3.0). See LICENSE for details.
This is an independent project not affiliated with Letterboxd or IMDb. It fetches publicly available data for personal, non-commercial use. Users are responsible for ensuring compliance with IMDb's Terms of Use.