--- title: Hep.gg Music API (LLM) description: Download audio and video across networks, pull lossless tracks by ISRC, search the catalog, and stream. One per-user key authenticates every call. --- # Hep.gg Music API Download audio and video across networks, pull lossless tracks from our high-quality library by ISRC, search the catalog, and stream. One per-user API key authenticates every call. Base URL: https://music.jakeypri.me Auth (any one of): ?key= query param Authorization: header (raw key, no "Bearer " prefix) X-API-Key: header Keys: 1 active key on free, 2 on Hep.gg Prime. Manage at /dashboard/music/api-keys. ## Endpoints ### GET /media?url=&format=audio|video Unified download. Auto-detects the network from the URL and returns the file as an attachment (audio -> audio/mpeg .mp3, video -> video/mp4 .mp4). url string required. A link from any supported network (URL-encoded). format string optional. "audio" or "video". Supported networks: YouTube (incl. Shorts), SoundCloud, Instagram, TikTok, Facebook. Format rules: - SoundCloud is audio-only. - Shorts / Reels are video-only. - Audio is 320 kbps mp3. Video is mp4, capped at 1080p on free and uncapped ("best") on Hep.gg Prime. Results are cached server-side, so a repeat pull of the same item is instant. Back-compat aliases (force audio; the network is still auto-detected from the URL): GET /yt?url= GET /soundcloud?url= ### GET /download?isrc=&quality=<128|320|flac> Download a lossless track from our high-quality music library by its ISRC. isrc string 12-char ISRC. Either isrc or url is required. url string resolve an ISRC from a link first, then download. quality string "128" (default), "320", or "flac". Streams audio/mpeg or audio/flac with Content-Disposition: attachment. ### GET /search?q=&limit=<1-50> Search our high-quality music library. limit defaults to 10 (max 50). Returns a JSON list of hits: { "query": "", "count": , "results": [ { "isrc": "USQX91300108", "name": "Track title", "artist": "Artist names, comma-joined", "album": "Album title (empty string if unavailable)", "durationMs": 369626, "url": "https://.../canonical-track-page" } ] } Pass an `isrc` straight into /download, /stream/:isrc, or /artwork/:isrc. ### GET /searchfull?q=&limit=<1-10> Extended search with richer per-track metadata than /search. The payload is heavier, so limit defaults to 3 (max 10). Use it only for fields /search omits. ### GET /stream/:isrc Stream a library track (same auth as /download). Used by the profile audio embed. Advertises Accept-Ranges: bytes and honors HTTP range requests: a Range header returns 206 Partial Content with Content-Range (plus the X-Track-* metadata headers); no Range returns the full 200. HEAD returns Content-Type and Accept-Ranges only; the X-Track-* metadata headers (including the artwork URL) are sent on GET responses. This makes the stream seekable for browser audio elements and audio bots/players. ### GET /artwork/:isrc Cover-art proxy. Unauthenticated. ### GET /playlistdownload?url= Resolve a playlist link you paste to its tracks for batch download. ### GET /client Download the latest Music Prime desktop client - a native app with a batch download queue, a library, and built-in key management (no per-request key pasting). Windows and macOS builds are published; the dashboard (/dashboard/music) shows per-OS download buttons. ### GET / Public service stats (totals). No auth. ## Quotas + usage Downloads are metered per key and broken down by network. Free video is capped at 1080p; Hep.gg Prime unlocks uncapped video and a second API key. ## Hep.gg dashboard (cookie auth - not for programmatic use) GET /api/v1/music/account GET /api/v1/music/keys POST /api/v1/music/keys { label? } PATCH /api/v1/music/keys/:id { label?, disabled? } POST /api/v1/music/keys/:id/rotate DELETE /api/v1/music/keys/:id GET /api/v1/music/catalog?q=&limit= GET /api/v1/music/stats GET /api/v1/music/global-stats