Repository navigation
v1.3.1
Fixes and performance improvements
- Recover TikTok URL resolution after proxy TLS failures exhaust an HTTP connection pool, without interrupting other active requests.
- Bound URL resolution, including duplicate-request waits, to a configurable 12-second deadline. Stop retrying invalid links and report upstream timeouts and local capacity failures accurately.
- Cache successful URL resolutions for 10 minutes and share concurrent failures only with existing waiters, allowing new requests to retry immediately.
- Reject oversized Telegram video/audio downloads before reading their bodies when sizes are known; enforce a combined budget for separate tracks and check the final remuxed output.
- Overlap thumbnail preparation with media connection/download work and bound optional thumbnail waits.
- Clean up cancelled downloads, queued concurrency slots, and FFmpeg processes promptly.
- Add structured diagnostics for resolver recovery and missing media assets.
Configuration and compatibility
URL_RESOLVE_TIMEOUT_SECONDSdefaults to12.URL_RESOLVE_POOL_TIMEOUT_SECONDSdefaults to1.TIKTOK_RESOLUTION_CACHE_TTL_SECONDSdefaults to600.- Pool-capacity failures return HTTP 503 (
service_busy); resolution timeouts return HTTP 504. - Existing Telegram upload limits now apply earlier in the download process. Oversized videos are not automatically downgraded.
Validation
- 161 non-live tests passed, including a local TLS proxy reproduction and failure-sharing regression coverage.
- Ruff lint and formatting checks, strict mypy checks, and lockfile validation passed.
Full changes: v1.3.0...v1.3.1