Skip to content

v2.0.0

Choose a tag to compare

@karilaa-dev karilaa-dev released this 14 Oct 19:24
ee2eda4

tt-scrap now runs as one native Go service with TikTok Android app extraction, Instagram extraction, authenticated downloads, and Telegram delivery. Existing API contracts are preserved.

Changes

  • Replace the Python server and app worker with one Go binary. TikTok registration, signing, identity management, and MP4 validation run in Go. Native libheif handles HEIC, HEIF, and AVIF conversion.
  • Make the TikTok app method the only backend. Add optional account fallback through TIKTOK_SESSION_ID for content restrictions.
  • Add PostgreSQL identity preparation and authenticated progress endpoints. Reuse saved identities, refresh signing material, and prepare ten identities per proxy before accepting requests.
  • Support https://www.tt.site/t/<code>/ and https://tt.site/t/<code>/ share links, with strict host and path validation.
  • Download media in parallel when the CDN provides a strong ETag. Bind every range to the same media representation and restart if it changes.
  • Upload single videos, audio files, and documents to Telegram while downloading. Withhold the final bytes until media validation and the identity checkpoint succeed.
  • Keep eligible media up to 250 MB in RAM by default, with a shared memory budget and automatic disk fallback. Add memory admission for image conversion and release unused buffer capacity.
  • Raise general pipeline limits while keeping Instagram concurrency at four. Refresh routing, tooling, CI, and container builds.

Upgrade from v1

Read the migration guide before replacing your deployment.

  • Supply DB_URL and an existing DB_SCHEMA. The database role must be able to manage the service's scrap_proxies and scrap_identities tables.
  • Import proxies through PROXY_FILE, reuse saved database proxies, or explicitly enable direct connections with PROXY_INCLUDE_HOST=true.
  • Remove TIKTOK_METHOD. Replace cookie-file configuration with TIKTOK_SESSION_ID if account fallback is needed.
  • Stop the old process before starting the new service against the same schema. Each schema permits one active app process.
  • Allow time for identity preparation before the HTTP listener opens. Review concurrency and memory settings for your host; media and image memory budgets each default to 1024 MB.
  • Replace Python startup commands with the Go binary or Docker image. Native libheif and its HEIC and AVIF codec plugins are required; Python, Node, Bun, and FFmpeg are no longer runtime requirements.

The tag triggers amd64 and arm64 container publication to ghcr.io/karilaa-dev/tt-scrap:v2.0.0 and ghcr.io/karilaa-dev/tt-scrap:2.0.0.

Validation

  • Race tests, PostgreSQL integration tests, formatting, vet, staticcheck, vulnerability checks, and Docker build and runtime checks passed on the implementation included in this release.
  • Live tests verified TikTok share links, extraction, downloads, caching, music, native image conversion, and Telegram video, document, audio, and album delivery. Instagram image and carousel extraction and delivery also passed.
  • Live Instagram reel verification was blocked by an upstream timeout. Very large uploads and memory-pressure scenarios were covered by automated tests rather than live traffic.

Full changes since v1.3.5