Supported platforms
Pinchana API routes normal scrape requests by matching URL patterns in config/modules.yaml. Nine scraper modules are enabled in the current stack.
| Platform | Accepted URL families | Notes |
|---|---|---|
| TikTok | tiktok.com, vm.tiktok.com, vt.tiktok.com |
Video and photo/slideshow posts are handled by the TikTok module. |
instagram.com, instagr.am |
Public Instagram post/reel URLs are handled by the Instagram module. | |
| YouTube Shorts | youtube.com/shorts/... |
The normal scraper module is specifically for Shorts URLs. |
| SoundCloud | soundcloud.com, on.soundcloud.com |
Music results are treated as audio-first in Web. |
| YouTube Music | music.youtube.com |
Audio/music extraction through the normal module pipeline. |
| Spotify | open.spotify.com |
The API deployment needs Spotify client credentials. |
| Deezer | deezer.com, deezer.page.link, link.deezer.com |
Audio/music extraction and short-link routing. |
| Threads | threads.net, threads.com |
Canonical post URLs and current Threads share-link resolution are supported. |
| Twitter / X | x.com, twitter.com, vxtwitter.com, fxtwitter.com |
Includes fallback handling when the primary X payload is incomplete. |
General YouTube URLs
Section titled “General YouTube URLs”youtube.com/watch, youtu.be/..., and other ordinary YouTube URLs are not sent to the shorts module by Pinchana Web. When the selected API advertises DLP protocol v2, Web uses the asynchronous DLP workflow instead.
DLP is intentionally separate because it has a different security and resource model: per-job workers, bounded quality/codec/container choices, optional browser-encrypted cookies, and streamed output files.
If DLP is unavailable, the Web client should not pretend that ordinary YouTube URLs are supported through the Shorts module.
Routing rules
Section titled “Routing rules”The gateway requires a complete HTTP(S) URL and chooses the first enabled module whose configured pattern matches. New integrations should send all normal scrape URLs to POST /v1/scrape rather than calling scraper service ports directly.
Self-hosters can change enabled modules and endpoint metadata in config/modules.yaml, but production Compose still expects the corresponding container, port, image, environment variables, and release workflow mapping to remain consistent.