How to Download YouTube Videos
The full flow, from copying a link to picking the right file, including what each error message means.
Updated 2026-10-15
Before you start: the part people skip
Downloading is only lawful when you have the right to do it. That covers your own uploads, material released under a licence that permits copying, videos where the creator has enabled saving, and content you have obtained permission to reuse. It does not cover grabbing a commercial music video or a paid course for redistribution or for building a library you did not license.
If your intended use is a re-upload, a compilation, or a background track for a monetised video, permission is a separate question from whether the technical pipeline can reach the file. The pipeline will often work; that is not the test that matters.
Step 1: copy the correct link
The link has to identify a single video. On desktop, copy from the address bar. On mobile, use the share sheet and choose Copy link. All of these resolve to the same eleven-character video id:
- https://www.youtube.com/watch?v=VIDEOID - the standard watch page
- https://youtu.be/VIDEOID - the short share form
- https://m.youtube.com/watch?v=VIDEOID - the mobile site
- https://www.youtube.com/shorts/VIDEOID - a vertical Short
A playlist page, a channel page or a search results URL will not work, because none of them identify one video. If your link contains an ampersand and a list parameter, the video part is still there, so those links are accepted; the surrounding playlist context is ignored.
Step 2: paste and let the server look it up
Paste the link into the input on any tool page and press the main button. Two things happen in sequence, and it is worth knowing which is which:
- Validation your link is parsed locally on the server. The protocol must be http or https, the host must be in the YouTube allowlist, and a valid video id must be extractable. This step needs no network call and fails instantly with INVALID_URL or UNSUPPORTED_PLATFORM when it does not pass.
- Resolution the validated link is handed to the configured parsing backend. This is the step that can be slow, and the step that fails with PROVIDER_UNAVAILABLE when no backend is configured on the server.
Only the normalised URL is forwarded. Tracking parameters from a share sheet are stripped before the request leaves the server.
Step 3: read the results honestly
The results panel is a table of what the backend actually returned, not a menu we invented. Three columns matter:
- Container mp4, webm, m4a. This tells you what will play natively on your device and what your editing software will accept.
- Kind video, audio, video-only or audio-only. A video-only row at 1080p is not a broken row; it is how the platform stores high resolutions, and it needs an audio track to be useful.
- Available whether a working download link was issued for that row. Rows without one are listed so you can see they exist, and are not silently hidden.
If the panel says parsing is unavailable, that is a deployment fact rather than a temporary glitch: no parsing backend is configured on this server yet.
Step 4: choose a format that suits the device
Pick for where the file is going, not for the biggest number. A 4K video-only stream is the wrong choice for a phone with limited storage and no muxing tool.
- Phone or tablet, watching in place progressive MP4 with audio, 720p or 1080p is plenty on a small screen.
- Archiving or editing the highest video rendition plus its matching audio track, muxed locally afterwards.
- Audio only, listening on modern devices M4A at the highest reported bitrate. Convert to MP3 later only if the target device demands it.
- Bandwidth-limited check the size estimate column before starting, especially on mobile data.
Troubleshooting the errors you will actually see
Each failure maps to a specific cause. Vague errors help nobody, so the API returns codes and the interface shows them.
- INVALID_URL the text was not a URL, or the URL had no video id. Usually a copied playlist or channel link.
- UNSUPPORTED_PLATFORM the host is not in the supported allowlist. Only YouTube is supported today.
- PROVIDER_UNAVAILABLE no parsing backend is configured or reachable on the server. Nothing about your link is wrong.
- RATE_LIMITED too many lookups from your network in a short window. Wait a moment and retry.
- VIDEO_UNAVAILABLE the backend could not resolve the video: private, deleted, age-restricted, or region-locked.
- DOWNLOAD_UNAVAILABLE the format exists but no usable direct link could be issued for it right now.
- INTERNAL_ERROR an unexpected server-side failure. Retrying is reasonable; if it repeats, report it through the contact page.
Handling short-lived links
A provider's download URL is a signed, time-limited pointer, not a permanent address. Two consequences follow. First, do not bookmark a download URL: it will stop working, and possibly sooner than you expect. Second, if a download fails partway through, the correct response is to start the download again so a fresh link is issued, rather than retrying the dead one.
This also explains how a download is produced. When a platform hands out picture and sound as two streams, neither one alone is a playable file, so the server fetches both, remuxes them into a single MP4 and streams that back to you. The file exists on the server only while it is prepared and for a few minutes afterwards, then it is deleted.
What this site deliberately does not do
It does not bypass access controls, DRM, age gates or paywalls, and it does not accept credentials. It does not re-encode video: streams are copied into a new container, not re-compressed. It does not expand playlists or bulk-download channels. It does not keep a history of your downloads. These are product decisions, not missing features, and they are the reason the service stays free to operate.