The Emby Webhook Automation is a Python script that serves as a webhook listener for the Emby media server. It's designed to automate the merging of movies in your Emby library based on Tmdb ID received through webhooks.
- Automatically merge two movies in the Emby library based on matching Tmdb ID.
- Logs the merge results, including successful and unsuccessful merges.
- Supports an ignore list to exclude specific libraries from the merge process.
Before using this script, ensure you have the following:
- Python 3.12 installed
- Required Python libraries: Flask, requests
- Docker (optional, for Docker installation)
- Clone the repository.
- Install the requirements using
pip install -r requirements.txt
. - Set up your configuration variables directly in the Python file or pass them as environment variables when running the script.
- Run the application using
python3 main.py
.
If you have Docker and Docker Compose installed, you can use the provided docker-compose.yml
file.
To run the application: docker-compose up
- Go to Emby settings.
- Choose
Webhook
and add a new webhook. - Set the server to the Flask application's endpoint (e.g.,
http://192.168.1.1:5000/emby-webhook
). - Under
Library
, selectNew Media Added
.
- Go to Emby settings.
- Choose
Notification
and add a new notification. - Select
Webhooks
as the notification type. - Set the server to the Flask application's endpoint (e.g.,
http://192.168.1.5:5000/emby-webhook
). - You can set
Request content type
to eithermultipart/form-data
orapplication/json
. - Under
Library
, selectNew Media Added
.
To exclude specific movie libraries from the merge process, use the IGNORE_LIBRARY
variable in the docker-compose.yml
file. This is particularly useful if you have separate libraries for different types of content that you do not wish to merge.
For example, to ignore libraries named "trending" and "other_library": IGNORE_LIBRARY="trending,other_library"
If your library path is /data/media/trending
, set:
IGNORE_LIBRARY="trending"
To automatically merge all movies at startup, set the MERGE_ON_START
variable in the docker-compose.yml file to yes
. After the initial merge has completed, you can set it back to no
to prevent unnecessary merges on subsequent restarts.
For example:
environment:
MERGE_ON_START
=yes
Once done, you can revert it:
environment:
MERGE_ON_START
=no
Logs are stored in the directory you mapped in the docker-compose.yml
. In the example above, logs will be stored at:
/mnt/cache/appdata/merge-versions/logs
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.