Skip to content

Pinchana overview

Pinchana retrieves public media from supported social and music URLs. The browser app at pinchana.cc is the easiest entry point; the API and self-hosting guides build on the same concepts.

Browser → Next.js same-origin routes → Pinchana gateway → platform scraper
│ │ │
HttpOnly session shared cache Gluetun VPN
└──────── media stream ────────────────┘

The Web app is a backend-for-frontend (BFF). It performs the page-load Turnstile flow, stores the signed browser session in an HttpOnly cookie, submits URLs to /web/scrape, rewrites returned media paths, and streams files back through same-origin routes. Machine clients instead call /scrape and /media/... with an X-API-Key.

The gateway selects one scraper module from the URL. Production Compose places the gateway and all scraper services in Gluetun’s network namespace and persists their shared downloaded-media cache in a Docker volume.

Using the Web app

Paste a public URL, choose Media or Audio only, preview the result, and save it locally.

Using the API

Send one request schema and receive one normalized response across all platforms.

Operating Pinchana

Run the gateway, nine modules, shared cache, and optional VPN routing with Docker Compose.