main
Media Episodes Viewer — One Piece Progress Reporter
A minimal single-container web app that generates a weekly One Piece progress report by querying Jellyfin and Sonarr.
Setup
1. Configure environment
cp .env.example .env
Edit .env and fill in your values:
| Variable | Description |
|---|---|
JELLYFIN_HOST |
Base URL of your Jellyfin server (e.g. http://192.168.1.10:8096) |
JELLYFIN_API_KEY |
Jellyfin API key (Dashboard → Advanced → API Keys) |
JELLYFIN_USER_ID |
Your Jellyfin user ID (visible in Dashboard → Users → click your user) |
SONARR_HOST |
Base URL of your Sonarr server (e.g. http://192.168.1.10:8989) |
SONARR_API_KEY |
Sonarr API key (Settings → General → Security) |
SONARR_SERIES_ID |
Sonarr internal series ID for One Piece (from the URL when viewing the series) |
2. Build and run
docker compose build --no-cache
docker compose up
Open http://localhost:5000 in your browser.
Building a macOS .app (Standalone)
A convenience build script is provided to create a standalone macOS application bundle that includes a Python runtime and the app. Note: the build must be run on macOS and requires internet access to install dependencies.
Run the following on your Mac:
chmod +x build_mac.sh
./build_mac.sh
The built .app will appear in dist/ (example: dist/MediaEpisodesViewer.app). Double-click the .app to launch; it will open a native GUI application (no local web server is required).
Usage
- The date range defaults to the previous week (Mon–Sat).
- Click Fetch Episodes to retrieve episode numbers from Jellyfin/Sonarr without generating the report yet.
- Click Generate Report to fetch data and produce the formatted text.
- Click Copy to Clipboard to copy the report.
Example output:
ONE PIECE PROGRESS!!! (Feb 8-14)
Episode 928/1155
Around 10 episodes watched this week!
Languages
Python
85.4%
HTML
13.4%
Shell
0.9%
Dockerfile
0.3%