Logo

MonoCalc

/

YouTube Video ID Extractor

Social Media
One per line, comma separated, or buried in a paragraph. Markdown links, angle brackets and trailing punctuation are all handled.

Thumbnails are plain image tags pointing at YouTube's image host — there is no API call and no key. Turn them off and the tool makes no network request of any kind.

What was found

Paste links above

Anything containing YouTube addresses works — a single link, a spreadsheet column, or a paragraph with links inside it.

Shape, not existence
Checks the shape of an ID only. A shape-valid ID may belong to a video that was never uploaded, was deleted, or is private — confirming that would require calling YouTube, which this tool does not do.

Copy out

The bare ID of every row, whatever kind it is.

The CSV carries every row, including the duplicates and the unreadable ones, with the source snippet alongside. Snippets are neutralised first, so a line beginning =, +, - or @ opens as text rather than as a spreadsheet formula.

How each shape is read

video

Exactly 11 characters of A–Z a–z 0–9 - _, and case-sensitive: dQw4w9WgXcQ and dqw4w9wgxcq are different IDs.

channel

Starts UC, 24 characters in total, and appears in a /channel/ address.

playlist

Read out of a list= parameter. YouTube has never published the length or the full prefix list, so an unfamiliar prefix is passed through with a note rather than rejected.

handle

A handle is a name, not an ID. Resolving one to a UC… channel ID needs a call to YouTube, which this tool never makes.

unrecognised

Shown with the snippet it came from so a typo is visible, and never included in the copy box. Legacy /c/ and /user/ addresses land here: they carry a custom name, not an ID.

About This Tool

YouTube Video ID Extractor – Clean Up a Messy Pile of Links

A YouTube video ID is the short string that identifies one video — dQw4w9WgXcQ in youtube.com/watch?v=dQw4w9WgXcQ. Getting it out of a single link is easy. Getting it out of two hundred links that arrived as a spreadsheet column, a chat export and a paragraph somebody wrote by hand is the job this YouTube ID extractor exists for. Paste whatever you have, and the tool returns a clean, de-duplicated table of every ID it found, classified and ready to copy. Everything happens in your browser: no upload, no API key, and no fetch request of any kind.

Every address shape, and the ones that carry two things

The same video reaches you in a dozen shapes depending on where it was copied from: youtu.be/ID from a phone, /shorts/ID from the Shorts feed, /live/ID from a premiere, /embed/ID from a page you were reading, and /v/ID from an old blog post. Mobile and music subdomains, the youtube-nocookie.com host, addresses with no https:// in front and addresses shouted in capitals all read correctly, because the host, the scheme and the path keyword are compared case-insensitively while the ID never is.

The case worth calling out is the one people share most: watch?v=ID&list=PL…&index=3. That single address carries a video and a playlist, and an extractor that returns one string per line quietly loses half of it. Here it produces two rows — one video, one playlist — from the one source line.

De-duplication you can actually check

Turn on Remove duplicates and the first occurrence of each ID is kept. The repeats are not deleted: they stay in place, dimmed, labelled duplicate → row 1, so you can see exactly what was dropped and satisfy yourself that it really was the same video. That matters because the three links youtu.be/ID, /shorts/ID and watch?v=ID look nothing alike but point at one video, while dQw4w9WgXcQ and dqw4w9wgxcq look almost identical and are two different IDs. Nothing here changes the case of an ID for exactly that reason.

Shape is not existence
The tool checks that an ID is shaped like a YouTube ID and nothing more. A shape-valid ID may belong to a video that was never uploaded, was deleted, or is private — confirming that would mean calling YouTube, which this tool never does. That is why results say video, playlist, channel, handle, duplicate or unrecognised, and never “valid” or “working”.

What each classification means

A video ID is exactly 11 characters from the base64url alphabet — A–Z, a–z, 0–9, - and _. A ten- or twelve-character token is reported as unrecognised rather than padded or trimmed to fit. A channel ID begins UC and is 24 characters long. Those two shapes are stable and are asserted here.

Playlist IDs are treated more cautiously: YouTube has never published their length or the full set of family prefixes, and both have changed over time, so a value in a list= parameter is accepted on a deliberately loose rule and an unfamiliar prefix is passed through with a note instead of being rejected. A handle such as @example is not an ID at all — it is a chosen name that its owner can change, and turning one into a UC… channel ID requires asking YouTube. The tool extracts and labels handles, and says so rather than pretending to convert them. Legacy /c/ and /user/ addresses carry custom names for the same reason and are reported as unrecognised with an explanation.

Seeing what you pasted

A list of eleven-character strings tells you nothing about which videos you are holding. The thumbnail grid does: each video ID gets a tile drawn from YouTube's image host through a plain image tag — no API, no key, no rate limit — and a tile that fails to load falls back to a placeholder carrying the ID rather than a broken-image icon. hqdefault.jpg is the default because it is generated for every video; maxresdefault.jpg is offered in the thumbnail output format, where many videos have no file at that address.

Getting the results out

Choose the shape you need — bare IDs, canonical watch?v=URLs, youtu.be short links, /embed/ addresses for an iframe, thumbnail URLs or Markdown links — pick newline or comma separation, and copy. Every link is rebuilt from an ID the tool validated, never echoed back from what you pasted, so nothing in the input can reach a clickable address. The CSV download carries the whole table, duplicates and unreadable rows included, with each source snippet neutralised so a line opening with = is read by a spreadsheet as text rather than run as a formula. Turn the thumbnail previews off and the page makes no network request whatsoever.

Frequently Asked Questions

Is the YouTube Video ID Extractor free?

Yes, YouTube Video ID Extractor is totally free :)

Can I use the YouTube Video ID Extractor offline?

Yes, you can install the webapp as PWA.

Is it safe to use YouTube Video ID Extractor?

Yes, any data related to YouTube Video ID Extractor only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does this YouTube ID extractor work?

Paste anything that contains YouTube links — one address, a spreadsheet column, or a paragraph with links buried in it — and the tool scans the text for candidates, reads the ID out of each one, classifies it as a video, playlist, channel or handle, and lists them in the order they appeared. Duplicates stay visible but are marked rather than silently dropped, so you can see exactly what was removed. Everything runs in your browser and the tool makes no fetch, XHR or WebSocket requests at all.

Where is the video ID in each kind of YouTube address?

On a watch page it is the v= parameter, as in youtube.com/watch?v=dQw4w9WgXcQ. On a youtu.be short link it is the whole path after the slash. On a Shorts, embed, live or legacy /v/ address it is the segment after that keyword. Extra parameters such as t=, si=, index= or pp= sit alongside the ID and are ignored here, so a tracking parameter never ends up glued to the ID.

Why is a video ID always 11 characters, and why does case matter?

A YouTube video ID is 11 characters drawn from the base64url alphabet: A–Z, a–z, 0–9, hyphen and underscore. Because that alphabet distinguishes upper and lower case, dQw4w9WgXcQ and dqw4w9wgxcq are two different IDs rather than two spellings of one, so this tool never changes the case of an ID. A token that is 10 or 12 characters is reported as unrecognised instead of being padded or trimmed to fit.

Can the tool tell me whether a video still exists?

No. It checks the shape of an ID and nothing else. A shape-valid ID may belong to a video that was never uploaded, was deleted, was made private, or is blocked in your country — confirming any of that would mean calling YouTube, which this tool does not do. That is why results are labelled video, playlist, channel, handle, duplicate or unrecognised, and never valid, live or working.

What is the difference between a channel ID and an @handle?

A channel ID is a permanent identifier that begins with UC and is 24 characters long, and it appears in addresses of the form youtube.com/channel/UC…. A handle is a chosen name such as @example that points at a channel and can be changed by its owner. Turning a handle into a channel ID requires asking YouTube, so the tool extracts and labels a handle but never pretends to convert one. Older /c/ and /user/ addresses carry custom names in the same way and are reported as unrecognised for the same reason.

What happens to a link that carries both a video and a playlist?

It produces two rows: one video and one playlist. An address such as youtube.com/watch?v=ID&list=PL… is the most common link people share, and dropping the playlist half of it is the mistake this tool is built to avoid. Playlist IDs are handled more loosely than video IDs because YouTube has never published their exact length or the full set of prefixes, so an unfamiliar prefix is passed through with a note rather than rejected.