Skip to content

v1.3.1

Choose a tag to compare

@karilaa-dev karilaa-dev released this 07 Sep 00:31
· 42 commits to main since this release
v1.3.1
13c545a

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_SECONDS defaults to 12.
  • URL_RESOLVE_POOL_TIMEOUT_SECONDS defaults to 1.
  • TIKTOK_RESOLUTION_CACHE_TTL_SECONDS defaults to 600.
  • 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