Telegram bot to download Songs from Tidal.
- Download Tracks/Albums/Mix/Playlist from Tidal
- Quality available upto Master-FLAC
- Search songs inline using Tidal-API
- Store downloaded songs to Channel/Group
- Bot can configured for Public or Private use
- Index Channel Feature for avoiding duplicate and search option
- Auto convert other music platform link to Tidal link
Use the below button to deploy the bot in Heroku.
Use the below button to deploy the bot in Koyeb.
- Fill all the Variables (In Environment Variable Section)
- For Database URL use Heroku Postgres or ElephantSQL
Rename example.env to .env and fill all those required variables.
virtualenv -p python3 VENV
. ./VENV/bin/activate
pip install -r requirements.txt
python -m bot
- For Database URL use Heroku Postgres (if on Heroku) or ElephantSQL
-> Required variables
TG_BOT_TOKEN
- The Telegram Bot Token. (Get from @BotFather)APP_ID
- Telegram account API ID. (Get it from Telegram)API_HASH
- Telegram account API HASH String. (Get it from Telegram)AUTH_CHAT
- List of Chat ID where Bot will work. (Seperated by space)ADMINS
- List of User ID who has full access to the Bot. (Seperated by space)ALLOW_DUMP
- Whether to store the downloaded files in any group/channel. (True/False)IS_BOT_PUBLIC
- Whether to allow bot usage for public. (True/False)TIDAL_REGION
- Country code for Tidal Song search. (In international format eg:IN)TIDAL_SEARCH_LIMIT
- Limit the number of search results.BOT_USERNAME
- Username of your bot.DATABASE_URL
- Postgres Database URL
-> Optional variables
LOG_CHANNEL_ID
- Group/Channel ID where bot stores all the downloaded files (Mandatory if set ALLOW_DUMP = True)AUTH_USERS
- List of User ID who can use the bot (Seperated by space) (Only needed if IS_BOT_PUBLIC = False)INLINE_THUMB
- Logo to be shown in inline search results. (Use CDN links for better performance)ENV
- Set to True if using ENV Variables.SEARCH_CHANNEL
- ID of channel/gropup to search downloaded/other songs files direclyUSER_SESSION
- Telegram account session string. (Required for Searching and Indexing to work) (Generate from HERE or use any other Pyrogram Session Generator)MUSIC_CHANNEL_LINK
- For providing direct join link to the Music Storage Channel while searching for songs inline.ALLOW_OTHER_LINKS
- If to allow automatic conversion of other music platform links to Tidal links while downloading. (Current API has a limit of 10 conversion per minute) (True/False)MENTION_USERS
- If to mention users for their corresponding tasks posted. (True/False)ANIT_SPAM_MODE
- Limits to one tasks per user. Also applies for groups where only one user can download at a time. (True/False)
If you want to change the default commands go to __init.py__ Line 27
start - Start the bot
help - Shows Help Message
download - Download songs from Tidal
auth - Authorise a chat/user
settings - Open Settings Panel [ADMIN ONLY]
add_sudo - Add a user as Admin [ADMIN ONLY]
shell - Run shell cmds [ADMIN ONLY]
index - Index Search channel with Songs [ADMIN ONLY]
authed - Shows list of chats where bot is allowed to run
Tidal Download Settings can be configured by editing values in .tidal-dl.json
-
addLyrics
- Whether to add lyrics to the song -
apiKeyIndex
- Index number of the API Available API Indexes are:-
0 - Fire TV (Formats:- Normal/High/HiFi)
1 - Fire TV (Formats:- Master Only. For songs without master quality will give error)
2 - Android TV (Formats:- Normal/High/Hifi)
3 - TV (Formats:- Normal/High/HiFi/Master)
4 - Android Auto (Formats:- Normal/High/HiFi/Master) -
audioQuality
- Can be set to any of these :- Normal/High/Hifi/Master -
downloadPath
- Where songs will be downloaded (set this to same as in the bot variable)