A simple Flask application that sends notifications to Telegram whenever new content (movies, series, seasons, episodes) is added to Emby.
- Sends Telegram notifications with media images whenever a new movie, series, season, or episode is added to Emby.
- Integrates with the Emby webhook plugin.
- Provides a filter to notify only for recent episodes or newly added seasons.
- An Emby server with the Webhook plugin installed.
- A Telegram bot token and chat ID (see the section on setting up a Telegram bot below).
- Docker (optional, for Docker installation).
- Clone the repository.
- Install the requirements using
pip install -r requirements.txt. - Set up your environment variables. (TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, EMBY_BASE_URL, EMBY_API_KEY, EPISODE_PREMIERED_WITHIN_X_DAYS, SEASON_ADDED_WITHIN_X_DAYS).
- Run the application using
python3 app.py.
If you have Docker and Docker Compose installed, you can use the provided docker-compose.yml
- Set up your environment variables in a
.envfile. - Run
docker-compose up.
- Start a Chat with BotFather on Telegram.
- Send
/newbotcommand. - Name your bot.
- Choose a unique username for your bot; it must end in
bot. - Retrieve your HTTP API token.
- Get your chat ID by starting a chat with your bot, sending a message, then visiting
https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdatesto find the chat ID in the returned JSON. - Input the Bot Token and Chat ID into the application's environment variables.
- Go to Emby settings.
- Choose
Webhooksand add a new webhook. - Set the server to the Flask application's endpoint (e.g.,
http://localhost:5000/webhook). - You can
Send Test Webhookto make sure every is working so far. - Under
Library, selectNew Media Added. - You can limit events to selected
Users, but it's best to limitLibrarytoMovie & Shows.
- Go to Emby settings.
- Choose
Notificationand add a new notification. - Select
Webhooksas the notification type. - Set the server to the Flask application's endpoint (e.g.,
http://localhost:5000/webhook). - You can set
Request content typeto eithermultipart/form-dataorapplication/json. - You can
Send Test Webhookto make sure every is working so far. - Under
Library, selectNew Media Added. - You can limit events to selected
Usersand/orDevices, but it's best to limitLibrarytoMovie & Shows.
-
EPISODE_PREMIERED_WITHIN_X_DAYS: Determines how recent an episode's premiere date must be for a notification to be sent. For example, setting it to7means only episodes that premiered within the last 7 days will trigger a notification. -
SEASON_ADDED_WITHIN_X_DAYS: Dictates the threshold for sending notifications based on when a season was added to Emby. If set to3, then if a season was added within the last 3 days, episode notifications will not be sent to avoid potential spam from adding an entire season at once.
Contributions are welcome! Feel free to open issues or submit pull requests for new features, bug fixes, or improvements.
This project is licensed under the MIT License. See the LICENSE file for details.