Releases: troykelly/emby-dedupe
Version 1.0.3
What's Changed
- Bump httpx from 0.25.2 to 0.26.0 by @dependabot in #32
Full Changelog: v1.0.2...v1.0.3
Version 1.0.2
Fixes memory handling when generating reports and ignores folders
Version 1.0.1
What's Changed
- Improve Robustness and Error Handling in Media Deduplication Script by @troykelly in #25
Full Changelog: v1.0.0...v1.0.1
Version 1.0.0
Emby Deduplication Script Docker Container Release v1.0.0
We are excited to announce the first official release of the Emby Deduplication Script Docker Container, version 1.0.0. This tool assists in managing media libraries by locating and reporting potential duplicate media items within Emby servers. Our Dockerised script offers a streamlined and secure solution to keep your Emby libraries organized and free from unnecessary duplicates.
Features
-
Detection of Duplicate Media Items: Identifies media items in your Emby library that could potentially be duplicates, based on provider IDs like IMDb, Tvdb, and Tmdb.
-
Robust Connection Handling: Utilises httpx for efficient HTTP communications with Emby's REST API, including exponential backoff and retry strategies for resilience against network and Emby instability.
-
Secure Authentication: Supports secure authentication methods, requiring a valid API key with sufficient permissions for making API calls to the Emby server.
-
Selective Deletion Capabilities: Operates in a 'Dry Run' mode by default, listing potential deletions without affecting your media. When provided with the
DEDUPE_DOIT
variable set to 'true' and the user's credentials, it performs deletions of the identified duplicates. -
Comprehensive Reporting: Generates a detailed report, listing items identified for deletion, making it easy for the user to review and make informed decisions.
-
Logging & Debugging Support: Allows users to set different levels of logging verbosity, aiding in debugging and providing insight into the script's behavior.
-
Multi-Architecture Support: Available for various architectures, including
amd64
,arm64
,arm/v7
, andarm/v6
.
Enhancements
-
Updated user authentication to require a valid API key for all operations, with username and password needed only when deletion action is performed.
-
Revised
README.md
documentation to include updated information about authentication, script features, and examples reflecting the latest script version.
Release Notes
-
All users are required to obtain a valid Emby API key and pass it into the Docker container using the
DEDUPE_EMBY_API_KEY
environment variable. -
For performing deletions (i.e., when
DEDUPE_DOIT='true'
), users must also provide the Emby username and password for additional authentication throughDEDUPE_EMBY_USERNAME
andDEDUPE_EMBY_PASSWORD
environment variables. -
The script logs detailed operational messages to facilitate tracking its progress and debugging. Users can control the verbosity level through the
DEDUPE_LOGGING
environment variable. -
To pull and run the Docker container:
docker pull ghcr.io/troykelly/emby-dedupe:1.0.0 docker run \ -e DEDUPE_EMBY_HOST="http://your-emby-server" \ -e DEDUPE_EMBY_LIBRARY="Your Library Name" \ -e DEDUPE_EMBY_API_KEY="your_valid_api_key" \ ghcr.io/troykelly/emby-dedupe:1.0.0
-
To execute a Dry Run:
# Set the DEDUPE_DOIT to 'false' (or omit it entirely) to simulate deletion without applying any changes
-
To delete duplicates:
# Set the DEDUPE_DOIT to 'true' and provide credentials to perform actual deletion of duplicates
Remarks
We encourage the community to contribute by providing feedback, reporting bugs, or suggesting enhancements via our GitHub repository. Your contributions make this tool better for everyone.
Thank you for using Emby Deduplication Script Docker Container. Enjoy your cleaner and more organized media library!
Version 0.0.1
Initial mostly working script.
Important Note
The API Key is required by the script to be defined, but it is not used. Any string can be passed.
This is because the Emby API does not allow tokens to delete items from the library, that must be done by a user.
A decision will be made as to the mixed use of API Key and User/Pass - and then the code will be updated.