How YouTube watch URLs work

The string you copy from YouTube is usually not a file. It is a **pointer**: host, path, and a video id, plus optional junk that tells the player where to start or which playlist rail to show. If you understand that pointer, the [YouTube Video Downloader](/tools/youtube-video-downloader) makes more sense — and fake “4K” sites make less.

The id is the whole video

On `https://www.youtube.com/watch?v=dQw4w9wgGcQ` the id is `dQw4w9wgGcQ`. Eleven characters is common; YouTube has used other lengths. Everything else is optional.

`https://youtu.be/dQw4w9wgGcQ` is the same id on a shorter host. Share sheets prefer it because it fits in SMS.

`/embed/` and `/live/` also carry the id in the path. They are still watch-class URLs for a public lookup, which is why RootoverZero’s video downloader accepts them.

`/shorts/` is a **different product path**. Same company, different copy-paste. Use the [YouTube Shorts Downloader](/tools/youtube-shorts-downloader) when that is what the phone produced.

Query parameters that confuse pastes

**`t=` or `start=`** — timestamp. Does not change which posters exist.

**`list=`** — playlist. The downloader should key off `v=`, not download 200 items.

**`si=`** — share tracking. Harmless for analysis; you can strip it if you like.

**`pp=`** — sometimes added by the app. Ignore.

**`ab_channel=`** — display hint. Ignore.

If you paste a Google *search* URL (`google.com/url?q=https://youtube.com/...`) analysis should fail as the wrong host. Open YouTube, then copy.

Unlisted, private, members

**Public.** oEmbed and `i.ytimg.com` posters usually work.

**Unlisted.** A person with the link can play it while logged into YouTube. An anonymous datacenter fetch may still 404. Treat unlisted as “not for this tool” unless oEmbed answers.

**Private.** Never.

**Members-only / paid.** The watch URL exists; the public file list should not.

A useful test: open the link in a private window without Google cookies.

What “public files” means

YouTube’s HTML player loads adaptive streams behind a complicated pipeline. That is not the same as a static `video.mp4` next to the watch page. What *is* reliably public for most uploads is the **thumbnail CDN**: `i.ytimg.com/vi/{id}/maxresdefault.jpg` and smaller siblings. RootoverZero lists those only after they respond as real images.

There is no honest 1080p MP4 row for a typical watch URL. Sites that always show 1080p are selling a rip, not reading a public file.

For audio intent, read [MP3 vs MP4](/blog/mp3-vs-mp4-for-saved-online-media) and use the [YouTube MP3 Downloader](/tools/youtube-mp3-downloader), which will not fake a 320kbps file.

Playlists and channels

A channel URL has no single id to analyze. A playlist URL without `v=` is a list, not a video. Copy a specific watch URL from inside the playlist.

When the id is wrong

Truncation in chat apps (especially ids that start with `-`) can break the parameter. Copy from the address bar again. Do not type the id from memory.

FAQ

Is youtu.be a different video?

No. Same id.

Does a timestamp change the download?

No.

Can I download a playlist in one click on RootoverZero?

No. One public URL at a time.

Why does a video I can play fail analysis?

Your browser is logged in. The public endpoints are not.