From 0c0defc340fc9ff3109a892629220d1c5357fce9 Mon Sep 17 00:00:00 2001 From: niku Date: Tue, 9 May 2023 20:33:07 +0200 Subject: [PATCH] Initial commit --- .config/streamrip/config.toml | 175 ++++++++++++++++++++++++++++++++++ Dockerfile | 9 ++ README.md | 4 + docker-entrypoint.sh | 5 + 4 files changed, 193 insertions(+) create mode 100644 .config/streamrip/config.toml create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 docker-entrypoint.sh diff --git a/.config/streamrip/config.toml b/.config/streamrip/config.toml new file mode 100644 index 0000000..5a57f35 --- /dev/null +++ b/.config/streamrip/config.toml @@ -0,0 +1,175 @@ +[downloads] +# Folder where tracks are downloaded to +folder = "/downloads" +# Put Qobuz albums in a 'Qobuz' folder, Tidal albums in 'Tidal' etc. +source_subdirectories = false + +[downloads.concurrency] +# Download (and convert) tracks all at once, instead of sequentially. +# If you are converting the tracks, or have fast internet, this will +# substantially improve processing speed. +enabled = true +# The maximum number of tracks to download at once +# If you have very fast internet, you will benefit from a higher value, +# A value that is too high for your bandwidth may cause slowdowns +max_connections = 3 + +[qobuz] +# 1: 320kbps MP3, 2: 16/44.1, 3: 24/<=96, 4: 24/>=96 +quality = 4 +# This will download booklet pdfs that are included with some albums +download_booklets = true + +email = "" +# This is an md5 hash of the plaintext password +password = "" +# Do not change +app_id = "" +# Do not change +secrets = [] + +[tidal] +# 0: 256kbps AAC, 1: 320kbps AAC, 2: 16/44.1 "HiFi" FLAC, 3: 24/44.1 "MQA" FLAC +quality = 3 +# This will download videos included in Video Albums. +download_videos = true + +# Do not change any of the fields below +user_id = "" +country_code = "" +access_token = "" +refresh_token = "" +# Tokens last 1 week after refresh. This is the Unix timestamp of the expiration +# time. If you haven't used streamrip in more than a week, you may have to log +# in again using `rip config --tidal` +token_expiry = "" + +[deezer] +# 0, 1, or 2 +# This only applies to paid Deezer subscriptions. Those using deezloader +# are automatically limited to quality = 1 +quality = 2 +# An authentication cookie that allows streamrip to use your Deezer account +# See https://github.com/nathom/streamrip/wiki/Finding-Your-Deezer-ARL-Cookie +# for instructions on how to find this +arl = "${DEEZER_NUTS}" +# This allows for free 320kbps MP3 downloads from Deezer +# If an arl is provided, deezloader is never used +use_deezloader = true +# This warns you when the paid deezer account is not logged in and rip falls +# back to deezloader, which is unreliable +deezloader_warnings = true + +[soundcloud] +# Only 0 is available for now +quality = 0 +# This changes periodically, so it needs to be updated +client_id = "" +app_version = "" + +[youtube] +# Only 0 is available for now +quality = 0 +# Download the video along with the audio +download_videos = false +# The path to download the videos to +video_downloads_folder = "" + +# This stores a list of item IDs so that repeats are not downloaded. +[database.downloads] +enabled = true +path = "" + +# If a download fails, the item ID is stored here. Then, `rip repair` can be +# called to retry the downloads +[database.failed_downloads] +enabled = true +path = "" + +# Convert tracks to a codec after downloading them. +[conversion] +enabled = false +# FLAC, ALAC, OPUS, MP3, VORBIS, or AAC +codec = "ALAC" +# In Hz. Tracks are downsampled if their sampling rate is greater than this. +# Value of 48000 is recommended to maximize quality and minimize space +sampling_rate = 48000 +# Only 16 and 24 are available. It is only applied when the bit depth is higher +# than this value. +bit_depth = 24 +# Only applicable for lossy codecs +lossy_bitrate = 320 + +# Filter a Qobuz artist's discography. Set to 'true' to turn on a filter. +[filters] +# Remove Collectors Editions, live recordings, etc. +extras = false +# Picks the highest quality out of albums with identical titles. +repeats = false +# Remove EPs and Singles +non_albums = false +# Remove albums whose artist is not the one requested +features = false +# Skip non studio albums +non_studio_albums = false +# Only download remastered albums +non_remaster = false + +[artwork] +# Write the image to the audio file +embed = true +# The size of the artwork to embed. Options: thumbnail, small, large, original. +# "original" images can be up to 30MB, and may fail embedding. +# Using "large" is recommended. +size = "large" +# Both of these options limit the size of the embedded artwork. If their values +# are larger than the actual dimensions of the image, they will be ignored. +# If either value is -1, the image is left untouched. +max_width = -1 +max_height = -1 +# Save the cover image at the highest quality as a seperate jpg file +keep_hires_cover = true + +[metadata] +# Sets the value of the 'ALBUM' field in the metadata to the playlist's name. +# This is useful if your music library software organizes tracks based on album name. +set_playlist_to_album = true +# Replaces the original track's tracknumber with it's position in the playlist +new_playlist_tracknumbers = true +# The following metadata tags won't be applied +# See https://github.com/nathom/streamrip/wiki/Metadata-Tag-Names for more info +exclude = [] + +# Changes the folder and file names generated by streamrip. +[filepaths] +# Create folders for single tracks within the downloads directory using the folder_format +# template +add_singles_to_folder = false +# Available keys: "albumartist", "title", "year", "bit_depth", "sampling_rate", +# "container", "id", and "albumcomposer" +folder_format = "{albumartist} - {title} ({year}) [{container}] [{bit_depth}B-{sampling_rate}kHz]" +# Available keys: "tracknumber", "artist", "albumartist", "composer", "title", +# and "albumcomposer" +track_format = "{tracknumber}. {artist} - {title}{explicit}" +# Only allow printable ASCII characters in filenames. +restrict_characters = false +# Truncate the filename if it is greater than 120 characters +# Setting this to false may cause downloads to fail on some systems +truncate = true + + +# Last.fm playlists are downloaded by searching for the titles of the tracks +[lastfm] +# The source on which to search for the tracks. +source = "qobuz" +# If no results were found with the primary source, the item is searched for +# on this one. +fallback_source = "deezer" + +[theme] +# Options: "dainty" or "plain" +progress_bar = "dainty" + +[misc] +# Metadata to identify this config file. Do not change. +version = "1.9.6" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9076983 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.11.3-slim-bullseye + +WORKDIR /app +RUN pip install streamrip --upgrade +COPY .config/streamrip/config.toml /root/.config/streamrip/config.toml + +COPY docker-entrypoint.sh ./ +RUN ["chmod", "+x", "/app/docker-entrypoint.sh"] +ENTRYPOINT [ "/app/docker-entrypoint.sh" ] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..20a3610 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# streamrip-docker +```sh +docker run -it -e DEEZER_NUTS=$TOKEN git.cesium.pw/niku/streamrip-docker +``` \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..164aa1e --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +sed -i "s/\${DEEZER_NUTS}/$DEEZER_NUTS/g" /root/.config/streamrip/config.toml + +exec "$@" \ No newline at end of file