📥 Setup Pinchflat — Automatic YouTube Channel Archiver
Deploy Pinchflat on Ubuntu — subscribe to YouTube channels and playlists and let the server download every new video automatically, organized for your media server.
📦 Resources & Setup Scripts
Grab the automated bash script from GitHub to follow along with the video.
Quick Install:
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/downloads/pinchflat/pinchflat-ubuntu.sh
chmod +x pinchflat-ubuntu.sh
sudo bash pinchflat-ubuntu.sh
Tutorial Steps
1 Download the Script
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/downloads/pinchflat/pinchflat-ubuntu.sh
2 Make it Executable
chmod +x pinchflat-ubuntu.sh
3 Run the Installer
The script installs Docker if needed, then starts the ghcr.io/kieraneglin/pinchflat container with config and downloads volumes under /root/docker/pinchflat, owned by UID/GID 1000.
sudo bash pinchflat-ubuntu.sh
4 Access the Web UI
Open your browser and create your first media profile and source:
http://<your-server-ip>:8945
Ports Used
| Port | Purpose |
|---|---|
| 8945 | Web UI |
Overview
Pinchflat is a YouTube archiving service built in Elixir on top of yt-dlp, designed around subscriptions instead of one-off downloads. You define Media Profiles (quality, format, output template, whether to grab thumbnails and metadata) and Sources (channels or playlists), and Pinchflat checks each source on a schedule — downloading new uploads automatically to /downloads. This setup runs it on port 8945 with config stored in /config (a SQLite database) and media in /downloads, both persisted under /root/docker/pinchflat. Output filenames and NFO metadata can be shaped for direct consumption by Jellyfin, Plex, or Kodi.
Why Use It
Channels get deleted, videos get taken down, and 'watch later' does not survive any of it. Pinchflat turns YouTube subscriptions into a local, permanent library: point it at the channels you care about once, and every future upload lands on your disk in a media-server-friendly structure. Compared to running yt-dlp cron jobs by hand, you get a UI for managing dozens of sources, per-profile quality rules, download history, and fast indexing that only fetches what is new.
When You Need It
Who Should Use It
Real Use Cases
Main Features
How to Use After Installation
Security Best Practices
Ports and Firewall Notes
Pinchflat uses a single port, 8945, published 1:1 from the container and opened in UFW by the script. Traffic to YouTube is all outgoing HTTPS, so nothing else needs opening. Because the UI has no login unless you set the basic-auth environment variables, treat 8945 as LAN/VPN-only; use Nginx Proxy Manager with HTTPS and authentication if you want to manage subscriptions from outside your network.
Backup and Maintenance
Common Mistakes
Troubleshooting
Alternatives
TubeArchivist is the heavier alternative with full-text search, its own player, and Elasticsearch underneath — more features, more resources. MeTube (also in this Academy) covers the complementary use case of one-off, on-demand downloads. Plain yt-dlp with cron remains viable for people who prefer config files to UIs. ytdl-sub is a popular config-driven middle ground.
When Not to Use It
For occasional single-video downloads, MeTube is simpler — Pinchflat's profiles and sources are overhead for one-offs. If you want to search inside your archive and stream it from a dedicated interface, TubeArchivist does that; Pinchflat deliberately leaves playback to your media server. And on very tight storage, subscription archiving is the wrong pattern entirely — disks fill fast.
PrismaTechWork Professional Help
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support.
Frequently Asked Questions
How is Pinchflat different from MeTube?
MeTube is on-demand: you paste a link, it downloads once. Pinchflat is subscription-based: you register channels or playlists and it keeps downloading new uploads automatically on a schedule. Many home labs run both — MeTube for one-offs, Pinchflat for archives.
Can Pinchflat organize files for Jellyfin or Plex?
Yes — that is one of its main goals. Media Profiles let you set output path templates (for example channel-based folders), download thumbnails, and write NFO metadata files that Jellyfin, Plex, and Kodi read for titles and artwork.
Will it download a channel's entire history?
By default a new source is fully indexed and downloaded. To avoid pulling years of backlog, set a download cutoff date on the profile or retention rules (keep last N videos / N days) on the source before it starts.
Does Pinchflat have a login?
Not by default. You can enable HTTP basic auth by setting the BASIC_AUTH_USERNAME and BASIC_AUTH_PASSWORD environment variables in the compose file, or put it behind an authenticated reverse proxy. Until then, keep port 8945 restricted to your LAN.
How often does it check for new videos?
Each source has its own check schedule, configurable in the UI. Pinchflat's fast indexing looks only at recent uploads on each pass, so frequent checks (e.g. hourly) stay cheap even across many subscribed channels.