v2.2.0
AniBridge v2.2.0 introduces significant enhancements with the integration of Alembic for automatic database migrations and the debut of STRM proxy streaming, alongside various stability improvements and documentation updates.
Breaking Changes
None.
New Features
- Added comprehensive Alembic database migration support, enabling automatic migrations on application startup with configurable behavior and migration scripts, and checks for existing tables. This includes updates to Docker and requirements to include Alembic. (
87b5651,16c43c0,e135674) - Implemented STRM proxy streaming functionality with configurable options for proxy mode, authentication (token and API key), and caching. This includes new endpoints for streaming and proxying STRM URLs, HLS playlist rewriting, and a new database table (
StrmUrlMapping) for tracking episode-to-URL mappings. (d9b3b61,cbb3429,b1f4fc5) - Added support for an environment variable to define an allowlist for STRM proxy upstream hosts. (
5990e28) - Enhanced logging capabilities by adding trace-level logs across various functions in the STRM proxy module. (
48cec30)
Other Changes
Fixed:
- Resolved a
TYPE_CHECKINGimport issue for alembic.config. (0b944bc) - Fixed a broken link to the logo image. (
94412f2) - Updated HLS and Range handling specifications with RFC references and resolved dead/broken links in STRM Proxy Stream spec files. (
5aa80ee,063befb) - Improved STRM resolution for the Megakino provider with enhanced error handling and provider preference logic. (
592a451) - Added proxy path hints to preserve HLS extensions, which is crucial for playback compatibility with media servers like Jellyfin/ffmpeg. (
47781a9) - Added TRACE level support to the standard library logging configuration. (
214d632) - Implemented upstream host validation and allowlist support for the STRM proxy, enhancing security. (
a41b2c4) - Corrected authentication logic to raise a
ValueErrorfor unknown STRM proxy authentication modes. (6bc8665) - Included an optional expiration timestamp in authentication parameters, addressing an issue where Jellyfin playback would stop after TTL expiration. (
4d87e7b)
Documentation:
- Added specifications for database migration options, STRM proxy stream functionality (including HLS playlist rewriting, HTTP Range support, security, caching, and an implementation plan), and examples for streams and M3U8 files. (
80d6e98,1d8cc7a,a415381,2f43a8b,fe4c92a) - Updated documentation across the project for Alembic migrations, database setup, STRM proxy mode, new configuration options (
STRM_PROXY_MODE,STRM_PUBLIC_BASE_URL,STRM_PROXY_AUTH,STRM_PROXY_SECRET,STRM_PROXY_CACHE_TTL_SECONDS), and new API endpoints. (aed16de,1cdf431,9ae8c2c,dee5d26) - Added comprehensive docstrings to the
strm/proxy-streammodule, improving code readability and maintainability. (e052d7a) - Included warnings and troubleshooting notes for Sonarr import issues with
.strmfiles, suggesting workarounds like manual imports or disabling "analyze video files." (d17a82c,8a76415)
Style:
- Applied consistent Python code formatting using Ruff across the codebase. (
7c02b1d,1e27511,07a74ec,3812185,7793f64,dec27ad,0eaf6f6,0042d7b) - Adjusted line wraps in documentation and fixed a typo. (
6948266)
Refactored:
- Cleaned up and moved Docker Compose files for development to the
/dockerdirectory. (8d2c886) - Enhanced and simplified async client management for upstream requests, including streamlining logic, improving error handling, and adding validation for STRM request parameters. (
fadd069,3acf5a4)
Performance:
- Converted blocking functions to asynchronous operations and introduced a shared async client for upstream streaming requests to optimize resource usage and improve non-blocking I/O. (
1196e65)
Tests:
- Disabled database migration on startup for test environments to prevent unintended migrations during testing. (
befff3a)
Build:
None.
CI/CD:
- Enhanced release notes structure and formatting within CI/CD to provide clearer and more organized documentation. (
5691ad5)
Chores:
- Performed housekeeping by moving
CODE_OF_CONDUCT.md,CONTRIBUTING.md,SECURITY.md, andREADME.mdinto the.github/folder. (73fbfdd) - Added a Docker Compose file for development, including VPN configuration, to facilitate local setup with related services like Sonarr, Radarr, Prowlarr, and Jellyfin. (
76c127f)