How to Find the Source URL of an Online Video

The address you want is not in the page; it is in the traffic. Every method on this page starts from that one fact.

Short answer: to find the source URL of an online video, open DevTools, filter the Network panel to media, and play the video. The requests that appear — one .mp4, a .m3u8 with segments, or a .mpd with separate audio — are the source, and they are the only reliable answer because they were produced by the player under your own session. Reading page source instead fails on dynamic and embedded players.

Why “view source” is the wrong door

Three delivery patterns hide the address from static markup:

  • Assembled playback. Media is appended to a MediaSource buffer by script. There is no URL attribute to read; the browser is being fed bytes.
  • Dynamic loading. A single-page application renders the player after fetching data, so the element exists only at runtime. View-source shows a shell.
  • Frames. An embedded player lives in another document; the outer page’s markup contains no media at all (see embedded video).

Consequence: “download video loaded dynamically on a webpage” and “download videos from single page applications” are not special cases requiring special tools. They are the normal case for anything built in the last decade, and the answer is always the traffic log.

The DevTools method (any browser)

1

Open the Network panel before playing

Firefox and Chrome both expose it in DevTools; Firefox documents its Network Monitor in detail. Filtering by media (or by Media / XHR) removes the noise of scripts and images.

2

Play the video and read what appears

Requests fire when playback begins. Look for: a single file (.mp4, .webm), a manifest (.m3u8, .mpd) followed by many small parts, or a stream of identically-named fragments with an index.

3

Copy the right one, with context

Inspect the request’s headers and initiator: the file you want is the one the media element actually consumed, not a preview or poster. Note that a manifest is a list, not the video — RFC 8216 describes what the playlist contains and why the segments are the payload.

4

Understand what you found before fetching it

A progressive URL can be downloaded. A manifest means each fragment must be fetched and combined; separate audio means a second family of fragments plus a mux. DevTools identifies these cases; it does not resolve them for you, and hand-copying hundreds of fragments is where people abandon the approach.

Detecting media files a page loaded, systematically

“Detect media files loaded by a webpage” is the same technique widened: keep the panel open, scrub through the page, and let it accumulate requests. Two practical tips:

  • Preserve log across navigation, so an interaction that reloads the page doesn’t erase the evidence.
  • Sort by size or duration of transfer — the real media is usually the largest thing fetched, and previews are small.

Where a tool does this for you and presents a list, it is doing exactly the above plus assembly. If it presents nothing, the usual causes are timing and frames — see detecting no media.

Pages with several players

“Detect multiple video sources on one page” and “download videos from a webpage with multiple players” describe lecture pages, product pages, and portfolios. The technique: play each item once, in turn, and note which request family corresponds to which player — the initiator and the timing disambiguate them. Expect lazily-loaded items to be absent until touched; a gallery that fetches the first three clips only reveals three, and scrolling changes the list.

That’s the honest limit of the manual method: it enumerates what has been loaded, not what could be loaded. A desktop downloader that lists resources per page has the same limit for the same reason.

“Capture video URL from browser playback” — the short version

  1. Play it in your normal session (not a private window, if the content needs login).
  2. Open Network, filter to media, keep the log.
  3. Identify the family: file, HLS manifest, or DASH manifest with separate audio.
  4. Act on that shape: download, or fetch-and-merge — HLS / DASH.

A captured address is a snapshot: signed URLs expire, so an address found at noon may fail at noon-fifteen. Use it immediately, or re-capture. That expiry behaviour, and the 403 it produces, are covered in fixing 403 and 401 download errors.

FAQ

How do I find the source URL of a video on a website?

Play it with DevTools' Network panel open and filtered to media: the request the player makes is the source. Page markup rarely contains it.

Why can't I see the video URL in view-source?

Because the player assembles media at runtime, the page is a single-page app, or the video lives in an embedded frame — none of which appear in static markup.

How do I identify video streams in browser developer tools?

Filter the Network panel by media, play the item, and read the extensions: one MP4 file, an m3u8 manifest with segments, or an mpd manifest with separate audio.

Can I download videos from a single-page application?

Yes. SPAs are just late-rendered pages: play the item so requests exist, then capture them.

The page has several players — which URL is the one I want?

Play the specific item and watch which request family appears when you do; check the initiator and the transfer size to confirm.

Is the URL I captured reusable later?

Rarely. Signed media addresses expire quickly, so re-capture rather than saving the string for later.