Tidarr is a docker image which provides a web interface to download 24 bit 192.0 kHz medias from Tidal (tracks/albums/playlists). Format on the fly with Beets, Automatically update your Plex library, Push notification with Gotify.
- Search by keywords
- Search by url : artist url, album url, playlist url
- Downloadable media : tracks, albums, playlists
- Server side download list processing
- UI build with React JS + Express JS API
- Self-hostable using Docker with Linuxserver.io base image (uncompressed size: ~ 190 Mo)
- Download from Tidal with Tiddl (python)
- Tag import using Beets.io (python)
- Push notifications using Gotify
- Plex library update
- Max quality : 24 bit 192.0 kHz (if available)
- Admin password available
- Song recognition : Shazarr project (Android)
Example docker-compose.yml :
services:
tidarr:
image: cstaelen/tidarr
container_name: 'tidarr'
ports:
- 8484:8484
volumes:
- /any/folder/to/tidarr/config:/home/app/standalone/shared
- /any/folder/to/download/albums:/home/app/standalone/download/albums
- /any/folder/to/download/tracks:/home/app/standalone/download/tracks
- /any/folder/to/download/playlists:/home/app/standalone/download/playlists
restart: 'unless-stopped'
or
docker run \
--rm \
--name tidarr \
-p 8484:8484 \
-v /any/folder/to/tidarr/config/:/home/app/standalone/shared \
-v /any/folder/to/download/albums:/home/app/standalone/download/albums \
-v /any/folder/to/download/tracks:/home/app/standalone/download/tracks \
-v /any/folder/to/download/playlists:/home/app/standalone/download/playlists \
cstaelen/tidarr:latest
(if no .tiddl_config.json
token file provided) :
docker compose exec -it tidarr tiddl
or
docker exec -it tidarr tiddl
environment:
- ...
- REACT_APP_TIDAL_COUNTRY_CODE=<country-code>
- REACT_APP_TIDAL_SEARCH_TOKEN=<search_token>
- REACT_APP_TIDARR_DEFAULT_QUALITY_FILTER=<"lossless" | "high" | "all">
N.B. <country-code>
should match your Tidal account country code.
You can check it using :
docker exec tidarr cat /root/.tiddl_config.json
How to get search token :
environment:
- ...
- TIDDL_FORMAT=<format> # default: {artist}/{album}/{title}
- TIDDL_PLAYLIST_FORMAT=<format> # default: {playlist}/{playlist_number}-{artist}-{title}
- TIDDL_QUALITY=<low|normal|high|master> # default: high (16bit 44.1khz), max available: master (24bit 192khz max)
- TIDDL_FORCE_EXT=<flac|mp3|m4a> # default: unset, depending the track downloaded.
environment:
- ...
- PUID=1234
- PGID=123
If not set, no password is required to access the app.
environment:
- ...
- ADMIN_PASSWORD=<string> # if not set, no password are required to access
Add to your docker-compose file in environment:
section :
environment:
- ...
- ENABLE_BEETS=true
Beets options in </mounted/config/folder/>beets-config.yml
:
Add to your docker-compose file in environment:
section :
environment:
- ...
- ENABLE_PLEX_UPDATE=true
- PLEX_URL=<url|ip:port>
- PLEX_LIBRARY=<music_library_id>
- PLEX_TOKEN=<x-plex-token>
- PLEX_PATH=/path/to/scan # optional - if not set, update whole library
- PlexToken : your Plex token : https://www.plexopedia.com/plex-media-server/general/plex-token/
- Library ID : In Plex server web ui, go to your music library tab and check
source=
in the URL http://192.168.1.20:32400/web/index.html#!/media/abcdef12345678/com.plexapp.plugins.library?**source=3** - Folder (optional) : path to folder to scan url (if not set, all music library will be scanned)
Doc : https://www.plexopedia.com/plex-media-server/api/library/scan-partial/
Add to your docker-compose file in environment:
section :
environment:
- ...
- ENABLE_GOTIFY=true
- GOTIFY_URL=<url|ip:port>
- GOTIFY_TOKEN=<gotify_app_token>
Doc: https://github.com/oskvr37/tiddl
As I'am the only maintainer for now, user requested features can takes time.
- Feel free to create an issue with
enhancement
tag. - Be my guest, fork and dev !
If you would like to support this project, please do not hesitate to make a donation. It contributes a lot to motivation, gives me the energy to continue maintaining the project and adding the features requested by the users :)
Want more features and/or contribute ? Be my guest, fork and dev <3
Check docker environment variables in compose.yml
before running :
make dev
Run tests :
make testing-build
make testing-run
Open http://localhost:3000 with your browser to see the result.
- Renovate old torrent dl media library with full FLAC
- Just for coding
- Just for fun
- Need an offical Tidal account
- Private use only
- Do not forget to support your local artists 🙏❤️