Skip to content

Python Telegram Bot to download music from Deezer and YouTube (Heroku, Docker)

License

Notifications You must be signed in to change notification settings

kernoeb/Telegramusic

Repository files navigation


Telegramusic

A Telegram bot to download music from Deezer and YouTube

Deploy

Disclaimer

⚠️ For educational purposes only (or for free music)
Please don't use this for illegal stuff.
It's against Deezer's terms of service.

Information

You should probably use Docker way to install the bot, or follow the steps listed in the Dockerfile.
As indicated in the Dockerfile there's a temporary patch to avoid the "FLAC issue" from the deezer download library.

Translations

Your native language is not in the langs.json file ? Just make a pull request or pm me !

Usage

  • Get an arl cookie on Deezer for DEEZER_TOKEN (see this repo)
  • Create a bot on Telegram and grab a token with Bot Father (TELEGRAM_TOKEN)
  • Activate Inline Mode on BotFather for the bot you just created

Search for music in inline mode :

@xxxxxxx_bot (album|track|artist) <search>

image

image

or send a Deezer / YouTube link


Configuration

Docker

Prerequisites

Create a token.env file with the following content, replacing the values with your own tokens :

DEEZER_TOKEN=abcdefghijklmnoxxxxxxxxxxxx
TELEGRAM_TOKEN=123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ
BOT_LANG=fr

Run

./update.sh

Or manually : git pull && docker-compose up -d --build

Local usage

  • Add DEEZER_TOKEN and TELEGRAM_TOKEN as variable environment
  • python3.9 -m pip install -r requirements.txt
  • python3.9 main.py

You should use a venv to avoid conflicts with your system python packages

Compressed files (zip)

You can send a zip file with multiple tracks inside, the bot will send you a zip file with all the tracks downloaded and the cover.

In the token.env file, add the following line :

FORMAT=zip

If the zip file is too big (more than 50MB), the bot will split the zip file into multiple parts.

Allow FLAC format

If you have Deezer premium, you can allow the bot to download FLAC files by adding the following line in the token.env file :

ENABLE_FLAC=1

Troubleshooting

"Sign in to confirm you’re not a bot. This helps protect our community. Learn more."
Please note that your account may be banned if you use this feature.

Add a cookies.txt in ./local_resources.
To generate this file, please see : https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp.

You don't need to restart the bot, it will automatically reload the cookies when downloading a YouTube video.