Download

One unified downloader for YouTube, SoundCloud, Instagram, TikTok and Facebook (audio or video), plus the Hep.gg high-quality music library by ISRC.

Download

Two ways to pull audio (and now video) down:

  • The unified downloader (/media) takes any YouTube, SoundCloud, Instagram, TikTok, or Facebook link, auto-detects the network, and returns audio or video.
  • The high-quality music library (/download) resolves a single track by ISRC and returns lossless or high-bitrate audio.

Download from a URL (unified)

GEThttps://music.jakeypri.me/mediaAuth required
Download audio or video from a YouTube, SoundCloud, Instagram, TikTok, or Facebook URL. The network is auto-detected.

Paste any supported link. The network is detected from the URL; short links (vm.tiktok.com, fb.watch, youtu.be, …) are resolved automatically.

Query params
url
stringrequired
The media URL. URL-encode it.
format
stringoptional
audio or video. Optional. When omitted, each network uses its default (see the table). SoundCloud is always audio; YouTube Shorts are always video.

Networks and defaults

NetworkURL formsDefault formatAudio/video toggle
YouTubewatch, youtu.be, embed, shortsaudio (Shorts: video)yes (Shorts: video only)
SoundCloudsoundcloud.com, m., on.audiono (audio only)
Instagram/reel, /p, /tvvideoyes
TikTok/@user/video/<id>, vm.tiktok.com, tiktok.com/t/<code>videoyes
Facebook/watch, /reel, /videos, fb.watchvideoyes

Format and quality

  • Audio is a 320 kbps MP3.
  • Video is an MP4 (best video + audio, merged). Free keys are capped at 1080p; Prime keys are uncapped.

Response

200 with a binary stream.

  • Content-Type: audio/mpeg for audio, video/mp4 for video.
  • Content-Disposition: attachment with a filename derived from the title.

Cached for 24 hours per (network, id, format), so the audio and video of the same item are cached independently.

Errors

  • 400 { "error": "URL is required" } when url is missing.
  • 400 for an unsupported or non-video link (playlists, channels, profiles, livestreams, photo posts, image-only posts) with a descriptive message.
  • 422 { "error": "Could not download this <network> (it may be private, removed, age-restricted, or require login)." }. Instagram and Facebook run without login cookies, so some videos behind a login wall fail this way.
  • 500 { "error": "Failed to download media" } on a server-side failure.

Examples

curl
# YouTube - default (audio)
curl -L "https://music.jakeypri.me/media?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ&key=YOUR_KEY" -o audio.mp3
 
# YouTube - video
curl -L "https://music.jakeypri.me/media?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ&format=video&key=YOUR_KEY" -o video.mp4
 
# TikTok - default (video)
curl -L "https://music.jakeypri.me/media?url=https%3A%2F%2Fwww.tiktok.com%2F%40user%2Fvideo%2F1234567890&key=YOUR_KEY" -o tiktok.mp4

Download from the high-quality library

GEThttps://music.jakeypri.me/downloadAuth required
Download a single library track as audio, by ISRC.

Resolve a track by its ISRC and stream back the audio. You can also pass a track link in url and Hep.gg will resolve it to its ISRC first, then download from the library.

Query params
isrc
stringoptional
The track's ISRC. Must be exactly 12 characters. Provide this or url.
url
stringoptional
A track link to resolve to an ISRC. Provide this or isrc. URL-encode it. Playlist URLs are rejected, see playlists.
quality
stringoptionaldefault: 128
Audio quality. One of 128, 320, or flac.

Response

200 with a binary audio stream.

  • Content-Type: audio/mpeg for 128/320, audio/flac for flac.
  • Content-Disposition: attachment named <artist> - <name>.<ext>.

HQ results (anything other than the default 128) are cached for 24 hours. A HEAD /download is also supported (same params) and returns just the headers.

Quality notes

  • The default is 128 when quality is omitted, not 320.
  • flac is not available for every track. When it is not, the response is 404 { "error": "Requested quality not available for this track." }. Fall back to 320.

Errors

  • 400 { "error": "Either url or isrc parameter is required" } when neither is supplied.
  • 400 { "error": "Invalid quality. Must be 128, 320, or flac" }.
  • 400 { "error": "Invalid ISRC. Must be 12 characters." }.
  • 400 playlist URL supplied (use /playlistdownload).
  • 404 { "error": "Track not found for this ISRC" } / "Requested quality not available for this track."
  • 500 on a server-side failure.

Examples

curl
# By ISRC, HQ
curl -L "https://music.jakeypri.me/download?isrc=USRC17607839&quality=320&key=YOUR_KEY" -o track.mp3
 
# By track link (URL-encoded), resolved to an ISRC first
curl -L "https://music.jakeypri.me/download?url=<TRACK_URL>&key=YOUR_KEY" -o track.mp3

Expand a playlist

GEThttps://music.jakeypri.me/playlistdownloadAuth required
Expand a playlist link into a track list. Does not return audio.

This endpoint does not return audio. It expands a supported playlist link into a list of tracks (ISRC, name, artist) that are resolvable in the library. To download the playlist, call this once, then loop over the returned tracks and call /download for each ISRC.

Query params
url
stringrequired
A playlist link. URL-encode it. Unsupported playlist links return 400.

Response

200 with a JSON object. Only resolvable tracks are included, so found may be lower than totalTracks.

{
  "totalTracks": 50,
  "found": 48,
  "tracks": [
    { "isrc": "USQX91300108", "name": "Get Lucky", "artist": "Daft Punk" }
  ]
}
Response fields
totalTracks
integeroptional
Number of tracks in the source playlist.
found
integeroptional
Number of those tracks that resolved (the length of tracks).
tracks
arrayoptional
Resolvable tracks, each with isrc, name, and artist. Feed each isrc to /download.

Errors

  • 400 { "error": "URL is required" }.
  • 400 when the playlist link is not supported.
  • 500 { "error": "Failed to process playlist" }.

Two-step download flow

curl
# 1. Expand the playlist to a track list
curl "https://music.jakeypri.me/playlistdownload?url=<PLAYLIST_URL>&key=YOUR_KEY"
 
# 2. For each isrc in the response, download it
curl -L "https://music.jakeypri.me/download?isrc=USQX91300108&quality=320&key=YOUR_KEY" -o "track.mp3"