Skip to content

🎞 Pinchflat

Pinchflat is a self-hosted app for downloading YouTube content built using yt-dlp.

This app is being used to automatically download videos from YouTube and store them on my NFS share so that I can stream the videos to my Apple TV via Infuse without having to watch commercials and take up bandwidth every time a video is rewatched.

🛠 Installation

Default Port: 8945

homelab/docker/pinchflat

task up
docker compose up

âš™ Config

I am currently investigating how to format the metadata for Infuse to properly pickup the video automatically. I also need to figure out how to setup Infuse.

homelab/docker/pinchflat/.env

CONTAINER_NAME=pinchflat
homelab/docker/pinchflat/compose.yaml
---

services:
  pinchflat:
    container_name: pinchflat
    image: ghcr.io/kieraneglin/pinchflat:v2025.3.17
    env_file:
      - .env
    environment:
      - TZ=America/Los_Angeles
    ports:
      - '8945:8945'
    restart: always
    volumes:
      - /root/git/nicholaswilde/homelab/docker/pinchflat/config:/config
      - /mnt/storage/youtube:/downloads

Traefik

homelab/pve/traefik/conf.d/pinchflat.yaml
---
http:
 #region routers 
  routers:
    pinchflat:
      entryPoints:
        - "websecure"
      rule: "Host(`pinchflat.l.nicholaswilde.io`)"
      middlewares:
        - default-headers@file
        - https-redirectscheme@file
      tls: {}
      service: pinchflat
#endregion
#region services
  services:
    pinchflat:
      loadBalancer:
        servers:
          - url: "http://192.168.2.138:8945"
        passHostHeader: true

Task List

task: Available tasks for this project:
* decrypt:       Decrypt .env using SOPS
* encrypt:       Encrypt .env using SOPS
* export:        Export the task list
* init:          Init .env file
* pull:          Pull docker images
* restart:       Restart Docker containers
* status:        Docker container status
* stop:          Stop Docker containers
* up:            Run Docker compose in the foreground.
* up-d:          Run Docker compose in the background.
* update:        Update running containers
* upgrade:       Upgrade Docker containers
* watch:         Watch Docker container logs

🔗 References