src | ||
compose.yml | ||
Dockerfile | ||
example.env | ||
playlists.example | ||
README.md | ||
requirements.txt |
ynkr
It's a youtube audio grabber. Easy to setup, private via VPNs (if you want it to)..
Setup/Installation
Preperations
- Youtube playlists marked at least as
not listed
- Docker/-compose
Note
only if you want to download more private..
- get gluetun up and running
You need (you technically don't need a gluetun config, or any other VPN, but i would highly recommend it for security and privacy reasons) a gluetun configuration which works for you. I have a Cyberghost subscription, where i can then get the login data for gluetun, so that the main connections come from a differnt country/different public IP.
services:
ynkr:
image: git.k4li.de/docker/ynkr:latest
environment:
- PUID=1000 # Replace with your actual UID (your own id)
- PGID=1000 # Replace with your actual GID (the docker group)
volumes:
- ./downloads:/downloads # this is the raw music/download folder -> playlists same as in source
- ./music:/music # this is the processed music folder - would highly recommend setting up a jellyfin instance/container, which points to this exact folder path
- ./music_imports.db:/app/music_imports.db:rw # <- in this database file, we will store and keep track of the processed data, so that we dont need to generate too much ai requests.
- ./archives:/archives # <- for keeping track of yt-dlp's already downloaded tracks
- ./playlists:/app/playlists:ro # <- to let yt-dlp know what to download
restart: unless-stopped
network_mode: service:proxy # <-- here you acctually tell the docker socket, to use gluetun network for the ynkr app!!
depends_on:
- proxy
proxy:
image: docker.io/qmcgaw/gluetun:latest
container_name: proxy
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
environment:
- VPN_SERVICE_PROVIDER=<provider>
- OPENVPN_USER=<user>
- OPENVPN_PASSWORD=<password>
- TZ=Europe/Berlin
# - SERVER_COUNTRIES=Spain
volumes:
- ./gluetun:/gluetun # <-- you have to put in your certificates in there!!
You then have to make sure the directories and files exist
mkdir archives music downloads
touch playlists music_imports.db
Fill in the playlists
file like this..
<name> = <youtube-playlist-url>
# like this..
example = https://music.youtube.com/playlist?list=PLzXB9N9Lp6mXs8CHGAyMndCQdHWZS5aPR&si=3EJP2wEwB5oy63UF
The script checks for the =
limiter charakter, fill in as much playlists as you like. It will auto create folders with the name
and download the audiofiles, thumnails and other meta data into the mapped folder via <folder>:/downloads