Repository navigation
v2.0.0
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_IDfor 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>/andhttps://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_URLand an existingDB_SCHEMA. The database role must be able to manage the service'sscrap_proxiesandscrap_identitiestables. - Import proxies through
PROXY_FILE, reuse saved database proxies, or explicitly enable direct connections withPROXY_INCLUDE_HOST=true. - Remove
TIKTOK_METHOD. Replace cookie-file configuration withTIKTOK_SESSION_IDif 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.