[{"data":1,"prerenderedAt":268},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fhls-without-ffmpeg":49,"\u002Fblog\u002Fhls-without-ffmpeg-surround":260},[4,23],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11,"children":-1},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16,"children":-1},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21,"children":-1},"Usage","\u002Fdocs\u002Fgetting-started\u002Fusage","1.docs\u002F1.getting-started\u002F3.usage","i-lucide-sliders",false,{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":22},"Features","i-lucide-star","\u002Fdocs\u002Fessentials","1.docs\u002F2.essentials",[29,34,39,44],{"title":30,"path":31,"stem":32,"icon":33,"children":-1},"Video Sniffing","\u002Fdocs\u002Fessentials\u002Fmarkdown-syntax","1.docs\u002F2.essentials\u002F1.markdown-syntax","i-lucide-video",{"title":35,"path":36,"stem":37,"icon":38,"children":-1},"Audio Capture","\u002Fdocs\u002Fessentials\u002Fcode-blocks","1.docs\u002F2.essentials\u002F2.code-blocks","i-lucide-music",{"title":40,"path":41,"stem":42,"icon":43,"children":-1},"Image Download","\u002Fdocs\u002Fessentials\u002Fprose-components","1.docs\u002F2.essentials\u002F3.prose-components","i-lucide-image",{"title":45,"path":46,"stem":47,"icon":48,"children":-1},"Privacy & Security","\u002Fdocs\u002Fessentials\u002Fimages-embeds","1.docs\u002F2.essentials\u002F4.images-embeds","i-lucide-shield-check",{"id":50,"title":51,"authors":52,"body":58,"date":250,"description":251,"extension":252,"image":253,"meta":254,"navigation":255,"path":256,"seo":257,"stem":258,"__hash__":259},"articles\u002F3.blog\u002F1.hls-without-ffmpeg.md","How to Download M3U8\u002FHLS Streams Without FFmpeg",[53],{"name":54,"to":55,"avatar":56},"FlowPick Team","https:\u002F\u002Fgithub.com\u002Fnuxt-ui-templates\u002Fsaas",{"src":57},"https:\u002F\u002Fi.pravatar.cc\u002F120?img=1",{"type":59,"value":60,"toc":235},"minimark",[61,65,70,82,85,89,92,111,114,118,121,126,129,133,136,140,143,165,169,172,176,179,199,202,232],[62,63,64],"p",{},"Downloading M3U8\u002FHLS streams used to require FFmpeg, command-line tools, or desktop software. FlowPick changes that by handling everything inside your browser.",[66,67,69],"h2",{"id":68},"what-is-m3u8hls","What Is M3U8\u002FHLS?",[62,71,72,73,77,78,81],{},"HLS (HTTP Live Streaming) is the most widely used streaming protocol on the web. Instead of sending a single video file, the server breaks the video into small segments (",[74,75,76],"code",{},".ts"," files) and provides a playlist file (",[74,79,80],{},".m3u8",") that lists all segments.",[62,83,84],{},"When you watch a video on most streaming sites, your browser is constantly fetching these small segments and playing them in sequence. That's why you can't simply \"right-click → save\" a streaming video — there's no single file to save.",[66,86,88],{"id":87},"the-traditional-way-ffmpeg","The Traditional Way: FFmpeg",[62,90,91],{},"Before browser-based solutions, downloading HLS streams typically meant:",[93,94,95,99,102,108],"ol",{},[96,97,98],"li",{},"Find the M3U8 URL using browser DevTools",[96,100,101],{},"Install FFmpeg on your computer",[96,103,104,105],{},"Run a command like ",[74,106,107],{},"ffmpeg -i \"url.m3u8\" -c copy output.mp4",[96,109,110],{},"Wait for the download and merge to complete",[62,112,113],{},"This works, but it's cumbersome. You need to install FFmpeg (which is a large tool), use the command line, and manage the process manually.",[66,115,117],{"id":116},"the-flowpick-way-in-browser-merging","The FlowPick Way: In-Browser Merging",[62,119,120],{},"FlowPick eliminates all of that. Here's how it works:",[122,123,125],"h3",{"id":124},"_1-auto-detection","1. Auto-Detection",[62,127,128],{},"When you open a page with HLS content, FlowPick automatically detects the M3U8 manifest by monitoring network requests. No need to open DevTools or hunt for URLs.",[122,130,132],{"id":131},"_2-fragment-download","2. Fragment Download",[62,134,135],{},"Once you click \"Download\", FlowPick fetches all the TS segments in parallel using multiple threads. This is significantly faster than sequential downloading.",[122,137,139],{"id":138},"_3-in-browser-merging","3. In-Browser Merging",[62,141,142],{},"Instead of using FFmpeg, FlowPick uses the browser's built-in APIs to merge the fragments:",[144,145,146,153,159],"ul",{},[96,147,148,152],{},[149,150,151],"strong",{},"WebAssembly",": Handles the binary merging of TS segments",[96,154,155,158],{},[149,156,157],{},"Blob API",": Combines the segments into a single file in memory",[96,160,161,164],{},[149,162,163],{},"Download API",": Saves the final file to your computer",[122,166,168],{"id":167},"_4-quality-selection","4. Quality Selection",[62,170,171],{},"For adaptive bitrate streams (most modern HLS), FlowPick shows all available quality levels. Choose 1080p, 720p, or any resolution the stream offers.",[66,173,175],{"id":174},"privacy-advantage","Privacy Advantage",[62,177,178],{},"Since everything happens in your browser:",[144,180,181,187,193],{},[96,182,183,186],{},[149,184,185],{},"No server uploads",": Your video data never leaves your device",[96,188,189,192],{},[149,190,191],{},"No tracking",": We don't log what you download",[96,194,195,198],{},[149,196,197],{},"No accounts",": No sign-up required, no personal data collected",[66,200,5],{"id":201},"getting-started",[93,203,204,220,223,226,229],{},[96,205,206,207,214,215],{},"Install FlowPick from the ",[208,209,213],"a",{"href":210,"rel":211},"https:\u002F\u002Fchromewebstore.google.com\u002F",[212],"nofollow","Chrome Web Store"," or ",[208,216,219],{"href":217,"rel":218},"https:\u002F\u002Fmicrosoftedge.microsoft.com\u002Faddons\u002F",[212],"Edge Add-ons",[96,221,222],{},"Navigate to any page with streaming video",[96,224,225],{},"Click the FlowPick icon in your toolbar",[96,227,228],{},"Select the stream and quality level",[96,230,231],{},"Click \"Pick\" to start downloading",[62,233,234],{},"That's it — no FFmpeg, no command line, no hassle.",{"title":236,"searchDepth":237,"depth":237,"links":238},"",2,[239,240,241,248,249],{"id":68,"depth":237,"text":69},{"id":87,"depth":237,"text":88},{"id":116,"depth":237,"text":117,"children":242},[243,245,246,247],{"id":124,"depth":244,"text":125},3,{"id":131,"depth":244,"text":132},{"id":138,"depth":244,"text":139},{"id":167,"depth":244,"text":168},{"id":174,"depth":237,"text":175},{"id":201,"depth":237,"text":5},"2025-04-20","Learn how FlowPick detects and merges M3U8 streaming fragments entirely in your browser — no FFmpeg, no command line, no server uploads.","md","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1611162617474-5b21e879e113?auto=format&fit=crop&w=800&q=80",{},true,"\u002Fblog\u002Fhls-without-ffmpeg",{"title":51,"description":251},"3.blog\u002F1.hls-without-ffmpeg","34TZCPNfqfUbznTyoKV3xiUT3FKH9Gd8nxEijsmMFrg",[261,262],null,{"title":263,"path":264,"stem":265,"description":266,"image":267,"children":-1},"HLS vs DASH: Which Streaming Protocol Should You Download?","\u002Fblog\u002Fhls-vs-dash","3.blog\u002F2.hls-vs-dash","Understand the differences between HLS and DASH streaming protocols, and how FlowPick handles both seamlessly.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1461749280684-dccba630e2f6?auto=format&fit=crop&w=800&q=80",1778639531445]