2024-04-27 18:57:53 +03:00
|
|
|
# musicdlp
|
|
|
|
Web UI for yt-dlp intended to be hosted on a music server.
|
|
|
|
Downloads playlists and separate tracks from YouTube, YT Music and Yandex Music,
|
|
|
|
converts to MP3, adds ID3 tags, searches for lyrics on Genius and writes to ID3.
|
|
|
|
|
|
|
|
Written in Python, because creating an interpreter process
|
|
|
|
on each yt-dlp invoke is unreasonable.
|
2024-05-09 19:45:06 +03:00
|
|
|
|
|
|
|
# Example configs
|
|
|
|
|
|
|
|
`/home/mdlp/src` contains cloned git repo, `/home/mdlp/venv` is a python venv.
|
|
|
|
|
2024-05-24 21:01:07 +03:00
|
|
|
Tip: to add track number to filenames, set `TRACK_FILE_TMPL="%(track_number)d %(track)S.%(ext)s"`
|
|
|
|
|
2024-05-09 19:45:06 +03:00
|
|
|
## nginx
|
|
|
|
```
|
|
|
|
server {
|
|
|
|
listen 443 ssl;
|
|
|
|
listen [::]:443 ssl;
|
|
|
|
|
|
|
|
server_name mdlp.domain.tld;
|
|
|
|
root /home/mdlp/src/frontend;
|
|
|
|
|
|
|
|
# https://ssl-config.mozilla.org/#server=nginx&version=1.26.0&config=modern&openssl=1.1.1k&guideline=5.7
|
|
|
|
#ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem
|
|
|
|
#ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem
|
|
|
|
#ssl_trusted_certificate /etc/letsencrypt/live/domain.tld/chain.pem
|
|
|
|
#...
|
|
|
|
|
|
|
|
location /ws {
|
|
|
|
proxy_pass http://127.0.0.1:4009;
|
|
|
|
proxy_http_version 1.1;
|
|
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
|
|
proxy_set_header Connection "Upgrade";
|
|
|
|
proxy_set_header Host $host;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## openrc
|
|
|
|
```
|
|
|
|
#!/sbin/openrc-run
|
|
|
|
|
|
|
|
export HOST=127.0.0.1
|
|
|
|
export PORT=4009
|
|
|
|
export YT_PROXY="http://user:pass@host:port"
|
|
|
|
|
|
|
|
name=$RC_SVCNAME
|
|
|
|
command="/home/mdlp/venv/bin/python3"
|
|
|
|
command_args="/home/mdlp/src/backend/main.py"
|
|
|
|
command_user="mdlp"
|
|
|
|
directory="/home/mdlp"
|
|
|
|
|
|
|
|
error_log="/var/log/$RC_SVCNAME/error.log"
|
|
|
|
|
|
|
|
pidfile="/run/$RC_SVCNAME/$RC_SVCNAME.pid"
|
|
|
|
command_background="yes"
|
|
|
|
|
|
|
|
depend() {
|
|
|
|
need net
|
|
|
|
}
|
|
|
|
|
|
|
|
start_pre() {
|
|
|
|
checkpath --directory --owner $command_user:$command_user --mode 0775 \
|
|
|
|
/run/$RC_SVCNAME /var/log/$RC_SVCNAME
|
|
|
|
}
|
|
|
|
```
|