Online Tools

M3U8/HLS and MPD/DASH streaming downloaders that work without installing extensions — get stream URL, paste it, select quality, download with one click.

In addition to the browser extension, FlowPick provides two independent online tool pages that allow downloading streaming media without installing any software. These tools share the same download engine as the extension but run in a web environment.


When to Use Online Tools

Online tools are a supplementary solution to the extension, suitable for following scenarios:

ScenarioRecommended MethodReason
Download anytime during daily browsingBrowser ExtensionAuto-detection, one-click download
Already have stream URL, just want quick downloadOnline toolsNo installation needed, open and use
Environments where extensions cannot be installed (company computers, public devices)Online toolsPure web page, no installation required
Need to batch download multiple known URLsOnline tools + Batch DownloadPaste one by one, queue management
Encounter CORS restrictionsBrowser ExtensionExtension permissions can bypass same-origin policy
If unsure which method to use, prioritize installing the extension. Online tools are suitable for temporary scenarios where "you have a stream URL and don't want to install an extension". See Installation Guide for details.

Differences from Extension

FeatureBrowser ExtensionOnline Tools
Auto-detect mediaSupported, auto-sniffs on page loadNot supported, requires manual paste of URL
Installation requirementRequires extension installationNo installation needed, just open webpage
Cross-origin restrictionsExtension permissions can bypass some restrictionsSubject to browser same-origin policy
Download engineSameSame
Save directory selectionSupportedSupported
Use caseAnytime download during daily browsingQuick download when stream URL already available
Online tools and extension use exactly the same download engine (useStreamMerge), with identical download speed, merge logic, and encryption/decryption capabilities. The only difference is in media detection method.

M3U8/HLS Stream Downloader

Access path: /m3u8-downloader

Overview

M3U8 downloader specifically handles HLS (HTTP Live Streaming) streaming protocol. Supports both Master Playlist and Media Playlist manifest formats.

For detailed principles of HLS protocol (Master Playlist vs Media Playlist, segment structure, encryption mechanism), see Video Sniffing — HLS Streams.

Usage Flow

  1. Get M3U8 URL: Obtain .m3u8 address from browser developer tools (Network panel) or third-party tools
  2. Paste URL: Paste address into input field, tool will automatically parse manifest
  3. Select quality: If Master Playlist, select target resolution from quality list
  4. Configure parameters: Set concurrent thread count, output format, and filename
  5. Start download: Click download button, tool will automatically download all segments and merge
Don't know how to get M3U8 address? Refer to F12 developer tool guide in Video Platforms — Manual URL Retrieval Mode.

Supported Manifest Types

Master Playlist (Multi-bitrate)

Contains multiple sub-streams of different qualities. After parsing, displays quality selector:

1080p · 5.2 Mbps · avc1.640028
720p · 2.8 Mbps · avc1.64001f
480p · 1.2 Mbps · avc1.64001e

After selecting a quality, tool will download corresponding Media Playlist and get segment list.

Media Playlist (Single-bitrate)

Directly contains TS segment list, no need to select quality. After parsing, directly displays segment count and estimated size.

Encryption Support

M3U8 downloader supports following encryption methods:

Encryption MethodSupport StatusDescription
AES-128 CBCFully supportedAuto-obtains key and decrypts segments
SAMPLE-AESNot supportedRequires dedicated decoder
Clear KeyNot supportedDRM protected content
Widevine / PlayReadyNot supportedCommercial DRM, cannot decrypt

For AES-128 encrypted streams, tool will:

  1. Parse #EXT-X-KEY tag to get key URI
  2. Download key file
  3. Use Web Crypto API (crypto.subtle.decrypt) to decrypt each segment in browser
  4. Merge decrypted segments into final file
All decryption operations are completed locally in browser; keys and segment data are not uploaded to any server. See Privacy & Security for details.

Segment Download & Merge

Download process is divided into three phases:

Phase 1: Parsing (0% ~ 5%)

  • Download and parse M3U8 manifest
  • Extract segment URI list
  • Sample estimate total size

Phase 2: Download (5% ~ 85%)

  • Multi-threaded concurrent segment download
  • Real-time display of progress, speed, and estimated remaining time
  • Auto-retry failed segments (up to 3 times, exponential backoff)

Phase 3: Merge (85% ~ 100%)

  • Concatenate segments in order
  • For TS format: Direct binary concatenation (fastest)
  • For MP4 output: Use FFmpeg WASM for container conversion
For underlying implementation of concurrent download (Worker Pool, retry strategy, memory management), see Download Engine Architecture. For detailed principles of TS→MP4 remuxing, see Format Conversion.

Progress Information

Real-time display during download:

MetricDescription
Progress percentageCompleted segments / Total segments
Download speedReal-time speed estimate based on sliding window
Estimated remaining timeCalculated based on current speed and remaining segments
Downloaded bytesCumulative downloaded data volume


MPD/DASH Stream Downloader

Access path: /dash-downloader

Overview

DASH downloader handles MPEG-DASH streaming protocol. Unlike HLS, DASH streams' video and audio are usually separated and need to be downloaded separately then merged.

For detailed principles of DASH protocol (MPD structure, audio-video separation, FMP4 packaging), see Video Sniffing — DASH Streams.

Usage Flow

  1. Get MPD URL: Obtain .mpd address from browser developer tools
  2. Paste URL: Paste address into input field
  3. Select quality: Select from parsed video stream list
  4. Configure parameters: Set concurrent thread count and filename
  5. Start download: Tool automatically downloads video and audio segments and merges them

MPD Manifest Parsing

DASH downloader uses mpd-parser library to parse MPD manifest, extracting following information:

  • Period: Time period definition
  • AdaptationSet: Media type grouping (video/audio)
  • Representation: Specific quality/bitrate options
  • SegmentTemplate / SegmentList: Segment URL pattern

Parsing results sorted by bitrate descending, display format:

1080p · 5.2 Mbps · avc1.640028
720p · 2.8 Mbps · avc1.64001f

Audio-Video Separate Processing

A key characteristic of DASH streams is that video and audio tracks are separated. Downloader processing flow:

  1. Parse MPD, identify video and audio AdaptationSets
  2. After user selects video quality, auto-match best audio stream (usually highest bitrate)
  3. Parallel download of video segments and audio segments
  4. Use FFmpeg WASM to merge video and audio into single MP4 file

Merge command equivalent to:

ffmpeg -f concat -i video_list.txt -f concat -i audio_list.txt \
  -c:v copy -c:a copy -movflags +faststart output.mp4
DASH audio-video merge uses FFmpeg WASM engine. For FFmpeg WASM loading mechanism, memory limitations, and performance optimization, see Format Conversion — FFmpeg WASM Engine.

FMP4 Support

For DASH streams using FMP4 (Fragmented MP4) packaging, downloader supports:

  • Identify FMP4 identifiers like urn:mpeg:dash:ffmpeg:2013
  • Download init segments and media segments
  • Use FFmpeg WASM to reassemble FMP4 segments into standard MP4

Encryption Support

Encryption MethodSupport Status
AES-128 CTRPartially supported
WidevineNot supported
PlayReadyNot supported
ClearKeyNot supported

Common Features

Save Directory Selection

Both online tools support File System Access API's directory persistence feature:

  1. Click "Select Save Directory" button
  2. Select target folder in system dialog that pops up
  3. After authorization, all subsequent downloads write directly to that directory
  4. Directory name displayed on interface, can be cleared or changed anytime

Technical Implementation:

  • Use window.showDirectoryPicker() to get directory handle
  • Request persistent permission via handle.requestPermission({ mode: 'readwrite' })
  • Directory name cached in localStorage for UI display
  • Permission status silently checked via navigator.permissions.query()
File System Access API requires Chrome 86+ or Edge 86+. If your browser doesn't support it, will automatically fall back to StreamSaver.js or Blob download. See Browser Compatibility for details.

Write Strategy Priority

Download engine selects file writing method by following priority:

PriorityStrategyMemory UsageApplicable Conditions
1File System Access APIExtremely low (streaming write)Chrome 86+, Edge 86+
2StreamSaver.jsExtremely low (streaming write)Requires Service Worker support
3Blob downloadEqual to file sizeFallback option, has 1.5GB limit
For detailed comparison of write strategies and fallback logic, see Download Engine Architecture — Write Strategy.

Error Handling

Errors that may be encountered during download and how they're handled:

Error TypeCauseHandling Method
HTTP 403Resource requires authentication or Referer validationPrompt user to check if URL is valid
HTTP 404Segment expired or URL incorrectPrompt user to re-obtain stream address
CORS errorCross-origin request rejected by serverRecommend using browser extension version
Network errorConnection interrupted or timeoutAuto-retry 3 times
Unsupported encryptionEncountered unsupported encryption methodClearly indicate unable to process
DRM protectionContent DRM protectedInform user content cannot be downloaded
CORS errors are most common issue. In this case recommend installing browser extension, which can bypass same-origin policy restrictions. See Common Issues Troubleshooting for more troubleshooting methods.

After Download Completion

Following operations provided after download completion:

  • Copy path: Copy file save path to clipboard
  • Download another: Reset state, prepare for next download
  • Clear save directory: Remove directory authorization

Technical Limitations

Online tools have following limitations compared to extension version:

  1. Cross-origin restrictions: Browser same-origin policy may block downloading segments from certain CDNs. Extension version can bypass some restrictions via webRequest permissions
  2. Referer validation: Some streaming servers require specific Referer headers, which online tools cannot customize
  3. Service Worker dependency: StreamSaver write strategy requires Service Worker support, and requires page to set correct COEP/COOP headers
  4. SharedArrayBuffer: FFmpeg WASM multi-threaded mode requires SharedArrayBuffer, which requires page to set Cross-Origin-Isolated header

FlowPick website has configured necessary security headers to support these features:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
For technical background of COEP/COOP headers and browser compatibility, see Browser Compatibility — Security Header Requirements.

Typical Use Cases

Scenario 1: Quick Download of Known Stream Address

Get M3U8 URL → Open /m3u8-downloader → Paste → Select quality → Download

Suitable for scenarios where stream address has been obtained via F12 developer tools. Refer to Video Platforms — Manual URL Retrieval.

Scenario 2: Temporary Device Download

Public computer → Open FlowPick website → Paste stream address → Download to USB drive

No software installation needed, suitable for environments like company computers, school computer labs, internet cafes where extensions cannot be installed.

Scenario 3: Batch Download Multiple Streams

Collect all M3U8 URLs → Download each one in online tool → Queue auto-managed

Suitable for scenarios needing to download multiple course videos or series videos. Refer to Online Courses Download.