[{"data":1,"prerenderedAt":2575},["ShallowReactive",2],{"docs-navigation":3,"\u002Fdocs\u002Ftroubleshooting\u002Fm3u8-download-failed":794,"\u002Fdocs\u002Ftroubleshooting\u002Fm3u8-download-failed-surround":2570},[4,187,340,493,645],{"title":5,"path":6,"stem":7,"children":8,"page":32},"Docs","\u002Fdocs","1.docs",[9,33,79,100,139,171],{"title":10,"path":11,"stem":12,"children":13,"icon":32},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[14,17,22,27],{"title":15,"path":11,"stem":12,"icon":16},"Introduction","i-lucide-house",{"title":18,"path":19,"stem":20,"icon":21},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F2.installation","i-lucide-download",{"title":23,"path":24,"stem":25,"icon":26},"Usage Guide","\u002Fdocs\u002Fgetting-started\u002Fusage","1.docs\u002F1.getting-started\u002F3.usage","i-lucide-sliders",{"title":28,"path":29,"stem":30,"icon":31},"Configuration Reference","\u002Fdocs\u002Fgetting-started\u002Fconfiguration","1.docs\u002F1.getting-started\u002F4.configuration","i-lucide-settings",false,{"title":34,"icon":35,"path":36,"stem":37,"children":38,"page":32},"Features","i-lucide-star","\u002Fdocs\u002Ffeatures","1.docs\u002F2.features",[39,44,49,54,59,64,69,74],{"title":40,"path":41,"stem":42,"icon":43},"Video Sniffing","\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing","1.docs\u002F2.features\u002F1.video-sniffing","i-lucide-video",{"title":45,"path":46,"stem":47,"icon":48},"Audio Capture","\u002Fdocs\u002Ffeatures\u002Faudio-capture","1.docs\u002F2.features\u002F2.audio-capture","i-lucide-music",{"title":50,"path":51,"stem":52,"icon":53},"Image Download","\u002Fdocs\u002Ffeatures\u002Fimage-download","1.docs\u002F2.features\u002F3.image-download","i-lucide-image",{"title":55,"path":56,"stem":57,"icon":58},"Privacy & Security","\u002Fdocs\u002Ffeatures\u002Fprivacy-security","1.docs\u002F2.features\u002F4.privacy-security","i-lucide-shield-check",{"title":60,"path":61,"stem":62,"icon":63},"Format Conversion","\u002Fdocs\u002Ffeatures\u002Fformat-conversion","1.docs\u002F2.features\u002F5.format-conversion","i-lucide-arrow-left-right",{"title":65,"path":66,"stem":67,"icon":68},"Batch Download","\u002Fdocs\u002Ffeatures\u002Fbatch-download","1.docs\u002F2.features\u002F6.batch-download","i-lucide-layers",{"title":70,"path":71,"stem":72,"icon":73},"Keyboard Shortcuts","\u002Fdocs\u002Ffeatures\u002Fkeyboard-shortcuts","1.docs\u002F2.features\u002F7.keyboard-shortcuts","i-lucide-keyboard",{"title":75,"path":76,"stem":77,"icon":78},"Search & Filter","\u002Fdocs\u002Ffeatures\u002Fsearch-filter","1.docs\u002F2.features\u002F8.search-filter","i-lucide-search",{"title":80,"icon":81,"path":82,"stem":83,"children":84,"page":32},"Advanced","i-lucide-book-open","\u002Fdocs\u002Fadvanced","1.docs\u002F3.advanced",[85,90,95],{"title":86,"path":87,"stem":88,"icon":89},"Online Tools","\u002Fdocs\u002Fadvanced\u002Fonline-tools","1.docs\u002F3.advanced\u002F1.online-tools","i-lucide-globe",{"title":91,"path":92,"stem":93,"icon":94},"Browser Compatibility","\u002Fdocs\u002Fadvanced\u002Fbrowser-compatibility","1.docs\u002F3.advanced\u002F2.browser-compatibility","i-lucide-monitor-check",{"title":96,"path":97,"stem":98,"icon":99},"Download Engine Architecture","\u002Fdocs\u002Fadvanced\u002Fdownload-engine","1.docs\u002F3.advanced\u002F3.download-engine","i-lucide-cpu",{"title":101,"icon":102,"path":103,"stem":104,"children":105,"page":32},"Use Cases","i-lucide-lightbulb","\u002Fdocs\u002Fusecases","1.docs\u002F4.usecases",[106,111,115,120,125,129,134],{"title":107,"path":108,"stem":109,"icon":110},"Online Course Video Downloader for Offline Learning","\u002Fdocs\u002Fusecases\u002Fonline-courses","1.docs\u002F4.usecases\u002F1.online-courses","i-lucide-graduation-cap",{"title":112,"path":113,"stem":114,"icon":43},"Video Platform Stream Downloader for Public Media","\u002Fdocs\u002Fusecases\u002Fvideo-platforms","1.docs\u002F4.usecases\u002F2.video-platforms",{"title":116,"path":117,"stem":118,"icon":119},"Live Replay Downloader for Large Streaming Videos","\u002Fdocs\u002Fusecases\u002Flive-replays","1.docs\u002F4.usecases\u002F3.live-replays","i-lucide-radio",{"title":121,"path":122,"stem":123,"icon":124},"Podcast and Audio Downloader for Offline Listening","\u002Fdocs\u002Fusecases\u002Fpodcasts-audio","1.docs\u002F4.usecases\u002F4.podcasts-audio","i-lucide-headphones",{"title":126,"path":127,"stem":128,"icon":53},"Bulk Image Downloader for Web Galleries and Wallpapers","\u002Fdocs\u002Fusecases\u002Fimage-galleries","1.docs\u002F4.usecases\u002F5.image-galleries",{"title":130,"path":131,"stem":132,"icon":133},"Internal Training Video Downloader for Intranet Content","\u002Fdocs\u002Fusecases\u002Fcorporate-training","1.docs\u002F4.usecases\u002F6.corporate-training","i-lucide-building-2",{"title":135,"path":136,"stem":137,"icon":138},"Personal Media Downloader for Video, Audio and Images","\u002Fdocs\u002Fusecases\u002Fpersonal-archiving","1.docs\u002F4.usecases\u002F7.personal-archiving","i-lucide-archive",{"title":140,"icon":141,"path":142,"stem":143,"children":144,"page":32},"Troubleshooting","i-lucide-wrench","\u002Fdocs\u002Ftroubleshooting","1.docs\u002F5.troubleshooting",[145,149,154,159,163,167],{"title":146,"path":147,"stem":148,"icon":141},"Common Issues Troubleshooting","\u002Fdocs\u002Ftroubleshooting\u002Fcommon-issues","1.docs\u002F5.troubleshooting\u002F1.common-issues",{"title":150,"path":151,"stem":152,"icon":153},"Known Limitations & Caveats","\u002Fdocs\u002Ftroubleshooting\u002Fknown-issues","1.docs\u002F5.troubleshooting\u002F2.known-issues","i-lucide-alert-triangle",{"title":155,"path":156,"stem":157,"icon":158},"FAQ","\u002Fdocs\u002Ftroubleshooting\u002Ffaq","1.docs\u002F5.troubleshooting\u002F3.faq","i-lucide-message-circle-question",{"title":160,"path":161,"stem":162,"icon":141},"M3U8 Download Failed: HLS Troubleshooting","\u002Fdocs\u002Ftroubleshooting\u002Fm3u8-download-failed","1.docs\u002F5.troubleshooting\u002F4.m3u8-download-failed",{"title":164,"path":165,"stem":166,"icon":141},"DASH Video Has No Audio: MPD Troubleshooting","\u002Fdocs\u002Ftroubleshooting\u002Fdash-no-audio","1.docs\u002F5.troubleshooting\u002F5.dash-no-audio",{"title":168,"path":169,"stem":170,"icon":141},"Direct Video Download Failed: MP4 and WebM Troubleshooting","\u002Fdocs\u002Ftroubleshooting\u002Fdirect-video-download","1.docs\u002F5.troubleshooting\u002F6.direct-video-download",{"title":172,"icon":173,"path":174,"stem":175,"children":176,"page":32},"Developer Docs","i-lucide-code","\u002Fdocs\u002Fdeveloper","1.docs\u002F6.developer",[177,182],{"title":178,"path":179,"stem":180,"icon":181},"Contributing Guide","\u002Fdocs\u002Fdeveloper\u002Fcontributing","1.docs\u002F6.developer\u002F1.contributing","i-lucide-git-pull-request",{"title":183,"path":184,"stem":185,"icon":186},"Project Architecture","\u002Fdocs\u002Fdeveloper\u002Farchitecture","1.docs\u002F6.developer\u002F2.architecture","i-lucide-box",{"title":188,"path":189,"stem":190,"children":191,"page":32},"Ja","\u002Fja","ja",[192,211,248,265,298,327],{"title":193,"path":194,"stem":195,"children":196,"icon":32},"クイックスタート","\u002Fja\u002Fgetting-started","ja\u002F1.getting-started\u002F1.index",[197,199,203,207],{"title":198,"path":194,"stem":195,"icon":16},"概要",{"title":200,"path":201,"stem":202,"icon":21},"インストール","\u002Fja\u002Fgetting-started\u002Finstallation","ja\u002F1.getting-started\u002F2.installation",{"title":204,"path":205,"stem":206,"icon":26},"使用方法","\u002Fja\u002Fgetting-started\u002Fusage","ja\u002F1.getting-started\u002F3.usage",{"title":208,"path":209,"stem":210,"icon":31},"設定リファレンス","\u002Fja\u002Fgetting-started\u002Fconfiguration","ja\u002F1.getting-started\u002F4.configuration",{"title":212,"icon":35,"path":213,"stem":214,"children":215,"page":32},"機能","\u002Fja\u002Ffeatures","ja\u002F2.features",[216,220,224,228,232,236,240,244],{"title":217,"path":218,"stem":219,"icon":43},"動画検知","\u002Fja\u002Ffeatures\u002Fvideo-sniffing","ja\u002F2.features\u002F1.video-sniffing",{"title":221,"path":222,"stem":223,"icon":48},"音声キャプチャ","\u002Fja\u002Ffeatures\u002Faudio-capture","ja\u002F2.features\u002F2.audio-capture",{"title":225,"path":226,"stem":227,"icon":53},"画像ダウンロード","\u002Fja\u002Ffeatures\u002Fimage-download","ja\u002F2.features\u002F3.image-download",{"title":229,"path":230,"stem":231,"icon":58},"プライバシーとセキュリティ","\u002Fja\u002Ffeatures\u002Fprivacy-security","ja\u002F2.features\u002F4.privacy-security",{"title":233,"path":234,"stem":235,"icon":63},"フォーマット変換","\u002Fja\u002Ffeatures\u002Fformat-conversion","ja\u002F2.features\u002F5.format-conversion",{"title":237,"path":238,"stem":239,"icon":68},"一括ダウンロード","\u002Fja\u002Ffeatures\u002Fbatch-download","ja\u002F2.features\u002F6.batch-download",{"title":241,"path":242,"stem":243,"icon":73},"キーボードショートカット","\u002Fja\u002Ffeatures\u002Fkeyboard-shortcuts","ja\u002F2.features\u002F7.keyboard-shortcuts",{"title":245,"path":246,"stem":247,"icon":78},"検索とフィルタ","\u002Fja\u002Ffeatures\u002Fsearch-filter","ja\u002F2.features\u002F8.search-filter",{"title":249,"icon":81,"path":250,"stem":251,"children":252,"page":32},"詳細情報","\u002Fja\u002Fadvanced","ja\u002F3.advanced",[253,257,261],{"title":254,"path":255,"stem":256,"icon":89},"オンラインツール","\u002Fja\u002Fadvanced\u002Fonline-tools","ja\u002F3.advanced\u002F1.online-tools",{"title":258,"path":259,"stem":260,"icon":94},"ブラウザ互換性","\u002Fja\u002Fadvanced\u002Fbrowser-compatibility","ja\u002F3.advanced\u002F2.browser-compatibility",{"title":262,"path":263,"stem":264,"icon":99},"ダウンロードエンジンアーキテクチャ","\u002Fja\u002Fadvanced\u002Fdownload-engine","ja\u002F3.advanced\u002F3.download-engine",{"title":266,"icon":102,"path":267,"stem":268,"children":269,"page":32},"ユースケース","\u002Fja\u002Fusecases","ja\u002F4.usecases",[270,274,278,282,286,290,294],{"title":271,"path":272,"stem":273,"icon":110},"オンライン講座の動画保存とオフライン学習","\u002Fja\u002Fusecases\u002Fonline-courses","ja\u002F4.usecases\u002F1.online-courses",{"title":275,"path":276,"stem":277,"icon":43},"動画プラットフォームのストリーム保存と素材収集","\u002Fja\u002Fusecases\u002Fvideo-platforms","ja\u002F4.usecases\u002F2.video-platforms",{"title":279,"path":280,"stem":281,"icon":119},"ライブ配信アーカイブの保存と大容量動画ダウンロード","\u002Fja\u002Fusecases\u002Flive-replays","ja\u002F4.usecases\u002F3.live-replays",{"title":283,"path":284,"stem":285,"icon":124},"ポッドキャスト・Web音声の保存とオフライン再生","\u002Fja\u002Fusecases\u002Fpodcasts-audio","ja\u002F4.usecases\u002F4.podcasts-audio",{"title":287,"path":288,"stem":289,"icon":53},"画像ギャラリー・壁紙の一括ダウンロード","\u002Fja\u002Fusecases\u002Fimage-galleries","ja\u002F4.usecases\u002F5.image-galleries",{"title":291,"path":292,"stem":293,"icon":133},"社内研修動画とイントラネット配信の保存","\u002Fja\u002Fusecases\u002Fcorporate-training","ja\u002F4.usecases\u002F6.corporate-training",{"title":295,"path":296,"stem":297,"icon":138},"動画・音声・画像の個人メディア保存と整理","\u002Fja\u002Fusecases\u002Fpersonal-archiving","ja\u002F4.usecases\u002F7.personal-archiving",{"title":299,"icon":141,"path":300,"stem":301,"children":302,"page":32},"トラブルシューティング","\u002Fja\u002Ftroubleshooting","ja\u002F5.troubleshooting",[303,307,311,315,319,323],{"title":304,"path":305,"stem":306,"icon":141},"一般的な問題のトラブルシューティング","\u002Fja\u002Ftroubleshooting\u002Fcommon-issues","ja\u002F5.troubleshooting\u002F1.common-issues",{"title":308,"path":309,"stem":310,"icon":153},"既知の制限事項と注意点","\u002Fja\u002Ftroubleshooting\u002Fknown-issues","ja\u002F5.troubleshooting\u002F2.known-issues",{"title":312,"path":313,"stem":314,"icon":158},"よくある質問","\u002Fja\u002Ftroubleshooting\u002Ffaq","ja\u002F5.troubleshooting\u002F3.faq",{"title":316,"path":317,"stem":318,"icon":141},"M3U8ダウンロードに失敗する場合の対処法","\u002Fja\u002Ftroubleshooting\u002Fm3u8-download-failed","ja\u002F5.troubleshooting\u002F4.m3u8-download-failed",{"title":320,"path":321,"stem":322,"icon":141},"DASH動画に音声がない場合の対処法","\u002Fja\u002Ftroubleshooting\u002Fdash-no-audio","ja\u002F5.troubleshooting\u002F5.dash-no-audio",{"title":324,"path":325,"stem":326,"icon":141},"動画の直リンクをダウンロードできない場合","\u002Fja\u002Ftroubleshooting\u002Fdirect-video-download","ja\u002F5.troubleshooting\u002F6.direct-video-download",{"title":328,"icon":173,"path":329,"stem":330,"children":331,"page":32},"開発者ガイド","\u002Fja\u002Fdeveloper","ja\u002F6.developer",[332,336],{"title":333,"path":334,"stem":335,"icon":181},"貢献ガイド","\u002Fja\u002Fdeveloper\u002Fcontributing","ja\u002F6.developer\u002F1.contributing",{"title":337,"path":338,"stem":339,"icon":186},"プロジェクトアーキテクチャ","\u002Fja\u002Fdeveloper\u002Farchitecture","ja\u002F6.developer\u002F2.architecture",{"title":341,"path":342,"stem":343,"children":344,"page":32},"Ko","\u002Fko","ko",[345,364,401,418,451,480],{"title":346,"path":347,"stem":348,"children":349,"icon":32},"빠른 시작","\u002Fko\u002Fgetting-started","ko\u002F1.getting-started\u002F1.index",[350,352,356,360],{"title":351,"path":347,"stem":348,"icon":16},"소개",{"title":353,"path":354,"stem":355,"icon":21},"설치","\u002Fko\u002Fgetting-started\u002Finstallation","ko\u002F1.getting-started\u002F2.installation",{"title":357,"path":358,"stem":359,"icon":26},"사용 방법","\u002Fko\u002Fgetting-started\u002Fusage","ko\u002F1.getting-started\u002F3.usage",{"title":361,"path":362,"stem":363,"icon":31},"설정 참조","\u002Fko\u002Fgetting-started\u002Fconfiguration","ko\u002F1.getting-started\u002F4.configuration",{"title":365,"icon":35,"path":366,"stem":367,"children":368,"page":32},"기능","\u002Fko\u002Ffeatures","ko\u002F2.features",[369,373,377,381,385,389,393,397],{"title":370,"path":371,"stem":372,"icon":43},"비디오 스니핑","\u002Fko\u002Ffeatures\u002Fvideo-sniffing","ko\u002F2.features\u002F1.video-sniffing",{"title":374,"path":375,"stem":376,"icon":48},"오디오 캡처","\u002Fko\u002Ffeatures\u002Faudio-capture","ko\u002F2.features\u002F2.audio-capture",{"title":378,"path":379,"stem":380,"icon":53},"이미지 다운로드","\u002Fko\u002Ffeatures\u002Fimage-download","ko\u002F2.features\u002F3.image-download",{"title":382,"path":383,"stem":384,"icon":58},"개인정보 보호와 보안","\u002Fko\u002Ffeatures\u002Fprivacy-security","ko\u002F2.features\u002F4.privacy-security",{"title":386,"path":387,"stem":388,"icon":63},"포맷 변환","\u002Fko\u002Ffeatures\u002Fformat-conversion","ko\u002F2.features\u002F5.format-conversion",{"title":390,"path":391,"stem":392,"icon":68},"일괄 다운로드","\u002Fko\u002Ffeatures\u002Fbatch-download","ko\u002F2.features\u002F6.batch-download",{"title":394,"path":395,"stem":396,"icon":73},"키보드 단축키","\u002Fko\u002Ffeatures\u002Fkeyboard-shortcuts","ko\u002F2.features\u002F7.keyboard-shortcuts",{"title":398,"path":399,"stem":400,"icon":78},"검색과 필터링","\u002Fko\u002Ffeatures\u002Fsearch-filter","ko\u002F2.features\u002F8.search-filter",{"title":402,"icon":81,"path":403,"stem":404,"children":405,"page":32},"고급 가이드","\u002Fko\u002Fadvanced","ko\u002F3.advanced",[406,410,414],{"title":407,"path":408,"stem":409,"icon":89},"온라인 도구","\u002Fko\u002Fadvanced\u002Fonline-tools","ko\u002F3.advanced\u002F1.online-tools",{"title":411,"path":412,"stem":413,"icon":94},"브라우저 호환성","\u002Fko\u002Fadvanced\u002Fbrowser-compatibility","ko\u002F3.advanced\u002F2.browser-compatibility",{"title":415,"path":416,"stem":417,"icon":99},"다운로드 엔진 아키텍처","\u002Fko\u002Fadvanced\u002Fdownload-engine","ko\u002F3.advanced\u002F3.download-engine",{"title":419,"icon":102,"path":420,"stem":421,"children":422,"page":32},"사용 사례","\u002Fko\u002Fusecases","ko\u002F4.usecases",[423,427,431,435,439,443,447],{"title":424,"path":425,"stem":426,"icon":110},"온라인 강의 동영상 다운로드와 오프라인 학습","\u002Fko\u002Fusecases\u002Fonline-courses","ko\u002F4.usecases\u002F1.online-courses",{"title":428,"path":429,"stem":430,"icon":43},"동영상 플랫폼 스트리밍 다운로드와 콘텐츠 수집","\u002Fko\u002Fusecases\u002Fvideo-platforms","ko\u002F4.usecases\u002F2.video-platforms",{"title":432,"path":433,"stem":434,"icon":119},"라이브 다시보기 다운로드와 대용량 스트리밍 저장","\u002Fko\u002Fusecases\u002Flive-replays","ko\u002F4.usecases\u002F3.live-replays",{"title":436,"path":437,"stem":438,"icon":124},"팟캐스트와 웹 오디오 다운로드","\u002Fko\u002Fusecases\u002Fpodcasts-audio","ko\u002F4.usecases\u002F4.podcasts-audio",{"title":440,"path":441,"stem":442,"icon":53},"웹 갤러리와 배경화면 이미지 일괄 다운로드","\u002Fko\u002Fusecases\u002Fimage-galleries","ko\u002F4.usecases\u002F5.image-galleries",{"title":444,"path":445,"stem":446,"icon":133},"사내 교육 동영상과 인트라넷 스트리밍 다운로드","\u002Fko\u002Fusecases\u002Fcorporate-training","ko\u002F4.usecases\u002F6.corporate-training",{"title":448,"path":449,"stem":450,"icon":138},"동영상·오디오·이미지 개인 미디어 보관","\u002Fko\u002Fusecases\u002Fpersonal-archiving","ko\u002F4.usecases\u002F7.personal-archiving",{"title":452,"icon":141,"path":453,"stem":454,"children":455,"page":32},"문제 해결","\u002Fko\u002Ftroubleshooting","ko\u002F5.troubleshooting",[456,460,464,468,472,476],{"title":457,"path":458,"stem":459,"icon":141},"일반적인 문제 해결","\u002Fko\u002Ftroubleshooting\u002Fcommon-issues","ko\u002F5.troubleshooting\u002F1.common-issues",{"title":461,"path":462,"stem":463,"icon":153},"알려진 제한 사항 및 주의사항","\u002Fko\u002Ftroubleshooting\u002Fknown-issues","ko\u002F5.troubleshooting\u002F2.known-issues",{"title":465,"path":466,"stem":467,"icon":158},"자주 묻는 질문","\u002Fko\u002Ftroubleshooting\u002Ffaq","ko\u002F5.troubleshooting\u002F3.faq",{"title":469,"path":470,"stem":471,"icon":141},"M3U8 다운로드 실패 해결 방법","\u002Fko\u002Ftroubleshooting\u002Fm3u8-download-failed","ko\u002F5.troubleshooting\u002F4.m3u8-download-failed",{"title":473,"path":474,"stem":475,"icon":141},"DASH 동영상에 소리가 없을 때 해결 방법","\u002Fko\u002Ftroubleshooting\u002Fdash-no-audio","ko\u002F5.troubleshooting\u002F5.dash-no-audio",{"title":477,"path":478,"stem":479,"icon":141},"동영상 직링크 다운로드 실패 해결 방법","\u002Fko\u002Ftroubleshooting\u002Fdirect-video-download","ko\u002F5.troubleshooting\u002F6.direct-video-download",{"title":481,"icon":173,"path":482,"stem":483,"children":484,"page":32},"개발자 문서","\u002Fko\u002Fdeveloper","ko\u002F6.developer",[485,489],{"title":486,"path":487,"stem":488,"icon":181},"기여 가이드라인","\u002Fko\u002Fdeveloper\u002Fcontributing","ko\u002F6.developer\u002F1.contributing",{"title":490,"path":491,"stem":492,"icon":186},"프로젝트 아키텍처","\u002Fko\u002Fdeveloper\u002Farchitecture","ko\u002F6.developer\u002F2.architecture",{"title":494,"path":495,"stem":496,"children":497,"page":32},"Zh Hans","\u002Fzh-hans","zh-Hans",[498,516,553,570,603,632],{"title":499,"path":500,"stem":501,"children":502,"icon":32},"快速开始","\u002Fzh-hans\u002Fgetting-started","zh-Hans\u002F1.getting-started\u002F1.index",[503,505,509,512],{"title":504,"path":500,"stem":501,"icon":16},"简介",{"title":506,"path":507,"stem":508,"icon":21},"安装","\u002Fzh-hans\u002Fgetting-started\u002Finstallation","zh-Hans\u002F1.getting-started\u002F2.installation",{"title":204,"path":510,"stem":511,"icon":26},"\u002Fzh-hans\u002Fgetting-started\u002Fusage","zh-Hans\u002F1.getting-started\u002F3.usage",{"title":513,"path":514,"stem":515,"icon":31},"配置参考","\u002Fzh-hans\u002Fgetting-started\u002Fconfiguration","zh-Hans\u002F1.getting-started\u002F4.configuration",{"title":517,"icon":35,"path":518,"stem":519,"children":520,"page":32},"功能特性","\u002Fzh-hans\u002Ffeatures","zh-Hans\u002F2.features",[521,525,529,533,537,541,545,549],{"title":522,"path":523,"stem":524,"icon":43},"视频嗅探","\u002Fzh-hans\u002Ffeatures\u002Fvideo-sniffing","zh-Hans\u002F2.features\u002F1.video-sniffing",{"title":526,"path":527,"stem":528,"icon":48},"音频捕获","\u002Fzh-hans\u002Ffeatures\u002Faudio-capture","zh-Hans\u002F2.features\u002F2.audio-capture",{"title":530,"path":531,"stem":532,"icon":53},"图片下载","\u002Fzh-hans\u002Ffeatures\u002Fimage-download","zh-Hans\u002F2.features\u002F3.image-download",{"title":534,"path":535,"stem":536,"icon":58},"隐私与安全","\u002Fzh-hans\u002Ffeatures\u002Fprivacy-security","zh-Hans\u002F2.features\u002F4.privacy-security",{"title":538,"path":539,"stem":540,"icon":63},"格式转换","\u002Fzh-hans\u002Ffeatures\u002Fformat-conversion","zh-Hans\u002F2.features\u002F5.format-conversion",{"title":542,"path":543,"stem":544,"icon":68},"批量下载","\u002Fzh-hans\u002Ffeatures\u002Fbatch-download","zh-Hans\u002F2.features\u002F6.batch-download",{"title":546,"path":547,"stem":548,"icon":73},"键盘快捷键","\u002Fzh-hans\u002Ffeatures\u002Fkeyboard-shortcuts","zh-Hans\u002F2.features\u002F7.keyboard-shortcuts",{"title":550,"path":551,"stem":552,"icon":78},"搜索与筛选","\u002Fzh-hans\u002Ffeatures\u002Fsearch-filter","zh-Hans\u002F2.features\u002F8.search-filter",{"title":554,"icon":81,"path":555,"stem":556,"children":557,"page":32},"高级指南","\u002Fzh-hans\u002Fadvanced","zh-Hans\u002F3.advanced",[558,562,566],{"title":559,"path":560,"stem":561,"icon":89},"在线工具","\u002Fzh-hans\u002Fadvanced\u002Fonline-tools","zh-Hans\u002F3.advanced\u002F1.online-tools",{"title":563,"path":564,"stem":565,"icon":94},"浏览器兼容性","\u002Fzh-hans\u002Fadvanced\u002Fbrowser-compatibility","zh-Hans\u002F3.advanced\u002F2.browser-compatibility",{"title":567,"path":568,"stem":569,"icon":99},"下载引擎架构","\u002Fzh-hans\u002Fadvanced\u002Fdownload-engine","zh-Hans\u002F3.advanced\u002F3.download-engine",{"title":571,"icon":102,"path":572,"stem":573,"children":574,"page":32},"使用场景","\u002Fzh-hans\u002Fusecases","zh-Hans\u002F4.usecases",[575,579,583,587,591,595,599],{"title":576,"path":577,"stem":578,"icon":110},"在线课程视频下载与离线学习","\u002Fzh-hans\u002Fusecases\u002Fonline-courses","zh-Hans\u002F4.usecases\u002F1.online-courses",{"title":580,"path":581,"stem":582,"icon":43},"视频平台流媒体下载与素材收集","\u002Fzh-hans\u002Fusecases\u002Fvideo-platforms","zh-Hans\u002F4.usecases\u002F2.video-platforms",{"title":584,"path":585,"stem":586,"icon":119},"直播回放下载与大文件流媒体保存","\u002Fzh-hans\u002Fusecases\u002Flive-replays","zh-Hans\u002F4.usecases\u002F3.live-replays",{"title":588,"path":589,"stem":590,"icon":124},"播客与网页音频下载","\u002Fzh-hans\u002Fusecases\u002Fpodcasts-audio","zh-Hans\u002F4.usecases\u002F4.podcasts-audio",{"title":592,"path":593,"stem":594,"icon":53},"图库与壁纸批量图片下载","\u002Fzh-hans\u002Fusecases\u002Fimage-galleries","zh-Hans\u002F4.usecases\u002F5.image-galleries",{"title":596,"path":597,"stem":598,"icon":133},"企业内训视频与内网流媒体下载","\u002Fzh-hans\u002Fusecases\u002Fcorporate-training","zh-Hans\u002F4.usecases\u002F6.corporate-training",{"title":600,"path":601,"stem":602,"icon":138},"个人媒体下载与视频音频图片归档","\u002Fzh-hans\u002Fusecases\u002Fpersonal-archiving","zh-Hans\u002F4.usecases\u002F7.personal-archiving",{"title":604,"icon":141,"path":605,"stem":606,"children":607,"page":32},"故障排除","\u002Fzh-hans\u002Ftroubleshooting","zh-Hans\u002F5.troubleshooting",[608,612,616,620,624,628],{"title":609,"path":610,"stem":611,"icon":141},"常见问题排查","\u002Fzh-hans\u002Ftroubleshooting\u002Fcommon-issues","zh-Hans\u002F5.troubleshooting\u002F1.common-issues",{"title":613,"path":614,"stem":615,"icon":153},"已知限制与注意事项","\u002Fzh-hans\u002Ftroubleshooting\u002Fknown-issues","zh-Hans\u002F5.troubleshooting\u002F2.known-issues",{"title":617,"path":618,"stem":619,"icon":158},"常见问题解答","\u002Fzh-hans\u002Ftroubleshooting\u002Ffaq","zh-Hans\u002F5.troubleshooting\u002F3.faq",{"title":621,"path":622,"stem":623,"icon":141},"M3U8 下载失败怎么办？HLS 流媒体排查","\u002Fzh-hans\u002Ftroubleshooting\u002Fm3u8-download-failed","zh-Hans\u002F5.troubleshooting\u002F4.m3u8-download-failed",{"title":625,"path":626,"stem":627,"icon":141},"DASH 视频没有声音怎么办？MPD 故障排查","\u002Fzh-hans\u002Ftroubleshooting\u002Fdash-no-audio","zh-Hans\u002F5.troubleshooting\u002F5.dash-no-audio",{"title":629,"path":630,"stem":631,"icon":141},"视频直链下载失败怎么办？MP4、WebM 排查","\u002Fzh-hans\u002Ftroubleshooting\u002Fdirect-video-download","zh-Hans\u002F5.troubleshooting\u002F6.direct-video-download",{"title":633,"icon":173,"path":634,"stem":635,"children":636,"page":32},"开发者文档","\u002Fzh-hans\u002Fdeveloper","zh-Hans\u002F6.developer",[637,641],{"title":638,"path":639,"stem":640,"icon":181},"贡献指南","\u002Fzh-hans\u002Fdeveloper\u002Fcontributing","zh-Hans\u002F6.developer\u002F1.contributing",{"title":642,"path":643,"stem":644,"icon":186},"项目架构","\u002Fzh-hans\u002Fdeveloper\u002Farchitecture","zh-Hans\u002F6.developer\u002F2.architecture",{"title":646,"path":647,"stem":648,"children":649,"page":32},"Zh Hant","\u002Fzh-hant","zh-Hant",[650,668,705,721,753,782],{"title":651,"path":652,"stem":653,"children":654,"icon":32},"快速入門","\u002Fzh-hant\u002Fgetting-started","zh-Hant\u002F1.getting-started\u002F1.index",[655,657,661,664],{"title":656,"path":652,"stem":653,"icon":16},"簡介",{"title":658,"path":659,"stem":660,"icon":21},"安裝","\u002Fzh-hant\u002Fgetting-started\u002Finstallation","zh-Hant\u002F1.getting-started\u002F2.installation",{"title":204,"path":662,"stem":663,"icon":26},"\u002Fzh-hant\u002Fgetting-started\u002Fusage","zh-Hant\u002F1.getting-started\u002F3.usage",{"title":665,"path":666,"stem":667,"icon":31},"配置參考","\u002Fzh-hant\u002Fgetting-started\u002Fconfiguration","zh-Hant\u002F1.getting-started\u002F4.configuration",{"title":669,"icon":35,"path":670,"stem":671,"children":672,"page":32},"功能特色","\u002Fzh-hant\u002Ffeatures","zh-Hant\u002F2.features",[673,677,681,685,689,693,697,701],{"title":674,"path":675,"stem":676,"icon":43},"影片嗅探","\u002Fzh-hant\u002Ffeatures\u002Fvideo-sniffing","zh-Hant\u002F2.features\u002F1.video-sniffing",{"title":678,"path":679,"stem":680,"icon":48},"音訊擷取","\u002Fzh-hant\u002Ffeatures\u002Faudio-capture","zh-Hant\u002F2.features\u002F2.audio-capture",{"title":682,"path":683,"stem":684,"icon":53},"圖片下載","\u002Fzh-hant\u002Ffeatures\u002Fimage-download","zh-Hant\u002F2.features\u002F3.image-download",{"title":686,"path":687,"stem":688,"icon":58},"隱私與安全","\u002Fzh-hant\u002Ffeatures\u002Fprivacy-security","zh-Hant\u002F2.features\u002F4.privacy-security",{"title":690,"path":691,"stem":692,"icon":63},"格式轉換","\u002Fzh-hant\u002Ffeatures\u002Fformat-conversion","zh-Hant\u002F2.features\u002F5.format-conversion",{"title":694,"path":695,"stem":696,"icon":68},"批次下載","\u002Fzh-hant\u002Ffeatures\u002Fbatch-download","zh-Hant\u002F2.features\u002F6.batch-download",{"title":698,"path":699,"stem":700,"icon":73},"鍵盤快速鍵","\u002Fzh-hant\u002Ffeatures\u002Fkeyboard-shortcuts","zh-Hant\u002F2.features\u002F7.keyboard-shortcuts",{"title":702,"path":703,"stem":704,"icon":78},"搜尋與篩選","\u002Fzh-hant\u002Ffeatures\u002Fsearch-filter","zh-Hant\u002F2.features\u002F8.search-filter",{"title":554,"icon":81,"path":706,"stem":707,"children":708,"page":32},"\u002Fzh-hant\u002Fadvanced","zh-Hant\u002F3.advanced",[709,713,717],{"title":710,"path":711,"stem":712,"icon":89},"線上工具","\u002Fzh-hant\u002Fadvanced\u002Fonline-tools","zh-Hant\u002F3.advanced\u002F1.online-tools",{"title":714,"path":715,"stem":716,"icon":94},"瀏覽器相容性","\u002Fzh-hant\u002Fadvanced\u002Fbrowser-compatibility","zh-Hant\u002F3.advanced\u002F2.browser-compatibility",{"title":718,"path":719,"stem":720,"icon":99},"下載引擎架構","\u002Fzh-hant\u002Fadvanced\u002Fdownload-engine","zh-Hant\u002F3.advanced\u002F3.download-engine",{"title":571,"icon":102,"path":722,"stem":723,"children":724,"page":32},"\u002Fzh-hant\u002Fusecases","zh-Hant\u002F4.usecases",[725,729,733,737,741,745,749],{"title":726,"path":727,"stem":728,"icon":110},"線上課程影片下載與離線學習","\u002Fzh-hant\u002Fusecases\u002Fonline-courses","zh-Hant\u002F4.usecases\u002F1.online-courses",{"title":730,"path":731,"stem":732,"icon":43},"影片平台串流下載與素材收集","\u002Fzh-hant\u002Fusecases\u002Fvideo-platforms","zh-Hant\u002F4.usecases\u002F2.video-platforms",{"title":734,"path":735,"stem":736,"icon":119},"直播回放下載與大型串流影片儲存","\u002Fzh-hant\u002Fusecases\u002Flive-replays","zh-Hant\u002F4.usecases\u002F3.live-replays",{"title":738,"path":739,"stem":740,"icon":124},"Podcast 與網頁音訊下載","\u002Fzh-hant\u002Fusecases\u002Fpodcasts-audio","zh-Hant\u002F4.usecases\u002F4.podcasts-audio",{"title":742,"path":743,"stem":744,"icon":53},"圖庫與桌布圖片批次下載","\u002Fzh-hant\u002Fusecases\u002Fimage-galleries","zh-Hant\u002F4.usecases\u002F5.image-galleries",{"title":746,"path":747,"stem":748,"icon":133},"企業內訓影片與內網串流下載","\u002Fzh-hant\u002Fusecases\u002Fcorporate-training","zh-Hant\u002F4.usecases\u002F6.corporate-training",{"title":750,"path":751,"stem":752,"icon":138},"個人媒體下載與影片音訊圖片歸檔","\u002Fzh-hant\u002Fusecases\u002Fpersonal-archiving","zh-Hant\u002F4.usecases\u002F7.personal-archiving",{"title":754,"icon":141,"path":755,"stem":756,"children":757,"page":32},"疑難排解","\u002Fzh-hant\u002Ftroubleshooting","zh-Hant\u002F5.troubleshooting",[758,762,766,770,774,778],{"title":759,"path":760,"stem":761,"icon":141},"常見問題排查","\u002Fzh-hant\u002Ftroubleshooting\u002Fcommon-issues","zh-Hant\u002F5.troubleshooting\u002F1.common-issues",{"title":763,"path":764,"stem":765,"icon":153},"已知限制與注意事項","\u002Fzh-hant\u002Ftroubleshooting\u002Fknown-issues","zh-Hant\u002F5.troubleshooting\u002F2.known-issues",{"title":767,"path":768,"stem":769,"icon":158},"常見問題解答","\u002Fzh-hant\u002Ftroubleshooting\u002Ffaq","zh-Hant\u002F5.troubleshooting\u002F3.faq",{"title":771,"path":772,"stem":773,"icon":141},"M3U8 下載失敗怎麼辦？HLS 串流排查","\u002Fzh-hant\u002Ftroubleshooting\u002Fm3u8-download-failed","zh-Hant\u002F5.troubleshooting\u002F4.m3u8-download-failed",{"title":775,"path":776,"stem":777,"icon":141},"DASH 影片沒有聲音怎麼辦？MPD 排查","\u002Fzh-hant\u002Ftroubleshooting\u002Fdash-no-audio","zh-Hant\u002F5.troubleshooting\u002F5.dash-no-audio",{"title":779,"path":780,"stem":781,"icon":141},"影片直連下載失敗怎麼辦？MP4、WebM 排查","\u002Fzh-hant\u002Ftroubleshooting\u002Fdirect-video-download","zh-Hant\u002F5.troubleshooting\u002F6.direct-video-download",{"title":633,"icon":173,"path":783,"stem":784,"children":785,"page":32},"\u002Fzh-hant\u002Fdeveloper","zh-Hant\u002F6.developer",[786,790],{"title":787,"path":788,"stem":789,"icon":181},"貢獻指南","\u002Fzh-hant\u002Fdeveloper\u002Fcontributing","zh-Hant\u002F6.developer\u002F1.contributing",{"title":791,"path":792,"stem":793,"icon":186},"專案架構","\u002Fzh-hant\u002Fdeveloper\u002Farchitecture","zh-Hant\u002F6.developer\u002F2.architecture",{"id":795,"title":160,"body":796,"description":2562,"extension":2563,"meta":2564,"navigation":2566,"path":161,"seo":2567,"stem":162,"__hash__":2569},"docs\u002F1.docs\u002F5.troubleshooting\u002F4.m3u8-download-failed.md",{"type":797,"value":798,"toc":2523},"minimark",[799,803,806,811,814,825,919,939,941,945,948,976,979,981,984,994,1001,1006,1103,1107,1122,1128,1144,1148,1159,1189,1207,1209,1212,1217,1221,1224,1230,1234,1241,1270,1277,1283,1290,1296,1300,1386,1402,1404,1407,1412,1415,1426,1482,1487,1498,1508,1512,1523,1527,1530,1593,1596,1600,1607,1613,1619,1627,1632,1643,1656,1660,1663,1671,1675,1689,1730,1739,1743,1746,1762,1774,1776,1779,1787,1791,1798,1804,1808,1873,1877,1929,1932,1936,1947,1961,1963,1966,1971,1975,1978,1986,1989,2064,2068,2071,2077,2091,2095,2102,2116,2119,2144,2150,2162,2164,2168,2173,2180,2231,2234,2245,2264,2266,2270,2275,2363,2367,2370,2426,2429,2431,2435,2442,2456,2461,2463,2467,2519],[800,801,802],"p",{},"An M3U8 download usually fails because the playlist wasn't detected, an online tool hit cross-origin restrictions, or the stream expects access credentials from the original video page. This guide walks through the actual HLS download pipeline so you can pinpoint which step failed, why, and how to fix it.",[804,805],"hr",{},[807,808,810],"h2",{"id":809},"first-understand-the-hls-download-pipeline","First, Understand the HLS Download Pipeline",[800,812,813],{},"HLS isn't a single URL that pulls one file. It's a pipeline—if any stage breaks, the end result is a \"failed download\" or a corrupted file. Knowing the pipeline gives you somewhere to start:",[815,816,821],"pre",{"className":817,"code":819,"language":820},[818],"language-text","① Detect M3U8        ② Parse Manifest     ③ Download Segments   ④ Decrypt      ⑤ Merge\u002FRemux\n   ↓                    ↓                      ↓                    ↓               ↓\n webRequest           m3u8-parser           Worker Pool         WebCrypto      FFmpeg WASM\n intercepts           distinguishes         parallel .ts        AES-128-CBC    TS → MP4\n requests             Master\u002FMedia          fetches +           (if needed)    or direct concat\n                      retry backoff\n","text",[822,823,819],"code",{"__ignoreMap":824},"",[826,827,828,844],"table",{},[829,830,831],"thead",{},[832,833,834,838,841],"tr",{},[835,836,837],"th",{},"Stage",[835,839,840],{},"Failure looks like",[835,842,843],{},"Jump to",[845,846,847,863,877,891,905],"tbody",{},[832,848,849,853,856],{},[850,851,852],"td",{},"① Detect",[850,854,855],{},"Popup shows \"no media detected\"",[850,857,858],{},[859,860,862],"a",{"href":861},"#cant-detect-m3u8","Can't Detect M3U8",[832,864,865,868,871],{},[850,866,867],{},"② Parse",[850,869,870],{},"Manifest downloaded but quality\u002Fsegment list is empty",[850,872,873],{},[859,874,876],{"href":875},"#manifest-parsing-issues","Manifest Parsing Issues",[832,878,879,882,885],{},[850,880,881],{},"③ Download",[850,883,884],{},"Progress stalls, 403, 404, CORS",[850,886,887],{},[859,888,890],{"href":889},"#segment-downloads-failing","Segment Downloads Failing",[832,892,893,896,899],{},[850,894,895],{},"④ Decrypt",[850,897,898],{},"Decrypt error, or silent\u002Fcorrupt output after merge",[850,900,901],{},[859,902,904],{"href":903},"#encrypted-streams-failing-to-decrypt","Encrypted Streams Failing to Decrypt",[832,906,907,910,913],{},[850,908,909],{},"⑤ Merge",[850,911,912],{},"File exists but won't play, or audio out of sync",[850,914,915],{},[859,916,918],{"href":917},"#merged-file-wont-play","Merged File Won't Play",[920,921,922],"note",{},[800,923,924,925,928,929,933,934,938],{},"For the full explanation of the HLS protocol and manifest structure (Master vs Media Playlist, ",[822,926,927],{},"EXT-X-KEY",", multiple audio tracks), see ",[859,930,932],{"href":931},"\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#hls-m3u8-streams","Video Sniffing — HLS (M3U8) Streams",". To see what real manifests look like and why naive downloaders break, check out the ",[859,935,937],{"href":936},"\u002Fblog\u002Fhls-m3u8-deep-dive-encryption-multitrack","HLS deep dive",".",[804,940],{},[807,942,944],{"id":943},"quick-fix","Quick Fix",[800,946,947],{},"Before going deep, run through this flow—it resolves about 90% of cases:",[949,950,951,960,970,973],"ol",{},[952,953,954,955,959],"li",{},"Open the ",[956,957,958],"strong",{},"original video page"," and play for a few seconds (many sites lazy-load; no playback, no M3U8 request).",[952,961,962,965,966,969],{},[956,963,964],{},"Refresh the page if you haven't since installing"," the extension (the extension's ",[822,967,968],{},"webRequest"," listeners only start on pages loaded after install).",[952,971,972],{},"Re-detect with the extension and pick your target quality.",[952,974,975],{},"Choose MP4 output and hit download again.",[800,977,978],{},"Still failing? Work through the sections below.",[804,980],{},[807,982,862],{"id":983},"cant-detect-m3u8",[800,985,986,989,990,993],{},[956,987,988],{},"Symptoms",": FlowPick's popup shows \"no media resources detected,\" or the list only has thumbnails\u002Fcovers with no ",[822,991,992],{},".m3u8"," entry.",[800,995,996],{},[997,998],"img",{"alt":999,"src":1000},"No media detected","\u002Fscreenshots\u002Fno-media-detected.png",[1002,1003,1005],"h3",{"id":1004},"common-causes","Common Causes",[826,1007,1008,1021],{},[829,1009,1010],{},[832,1011,1012,1015,1018],{},[835,1013,1014],{},"Cause",[835,1016,1017],{},"How to confirm",[835,1019,1020],{},"Fix",[845,1022,1023,1034,1045,1059,1070,1081],{},[832,1024,1025,1028,1031],{},[850,1026,1027],{},"Video hasn't started loading",[850,1029,1030],{},"Opened the extension without playing",[850,1032,1033],{},"Play for 3-5 seconds, then open the extension",[832,1035,1036,1039,1042],{},[850,1037,1038],{},"Page loaded before the extension was installed",[850,1040,1041],{},"Page was fully loaded pre-install",[850,1043,1044],{},"Refresh the page to re-trigger requests",[832,1046,1047,1050,1056],{},[850,1048,1049],{},"Site uses MSE instead of native HLS",[850,1051,1052,1053,1055],{},"No ",[822,1054,992],{}," request in DevTools",[850,1057,1058],{},"See \"What About MSE Sites\" below",[832,1060,1061,1064,1067],{},[850,1062,1063],{},"Manifest lives in a cross-origin iframe",[850,1065,1066],{},"Visible in the Network tab but not to the extension",[850,1068,1069],{},"Open the iframe's source page and detect there",[832,1071,1072,1075,1078],{},[850,1073,1074],{},"Ad-blocker or another extension conflicts",[850,1076,1077],{},"Works after disabling other network extensions",[850,1079,1080],{},"Whitelist or reorder your extensions",[832,1082,1083,1086,1097],{},[850,1084,1085],{},"Custom\u002Fprivate protocol",[850,1087,1088,1089,1092,1093,1096],{},"Traffic goes over ",[822,1090,1091],{},"ws:\u002F\u002F",", ",[822,1094,1095],{},"blob:",", or an encrypted stream",[850,1098,1099,1100],{},"Not supported by FlowPick; see ",[859,1101,1102],{"href":151},"Known Limitations",[1002,1104,1106],{"id":1105},"confirm-with-devtools","Confirm with DevTools",[800,1108,1109,1110,1113,1114,1117,1118,1121],{},"Press ",[822,1111,1112],{},"F12"," → ",[956,1115,1116],{},"Network"," tab → type ",[822,1119,1120],{},"m3u8"," in the filter box:",[800,1123,1124],{},[997,1125],{"alt":1126,"src":1127},"Filtering m3u8 in the Network tab","\u002Fscreenshots\u002Fnetwork-filter-m3u8.png",[1129,1130,1131,1134],"ul",{},[952,1132,1133],{},"Request present: the site really is using HLS, and the problem is on the detection side (usually a missing page refresh or an interfering extension).",[952,1135,1136,1137,1140,1141,1143],{},"No request: the site likely uses MSE (Media Source Extensions) and feeds segments straight to ",[822,1138,1139],{},"\u003Cvideo>"," without ever requesting a ",[822,1142,992],{},". FlowPick can't detect those—that's a browser-level limitation.",[1002,1145,1147],{"id":1146},"what-about-mse-sites","What About MSE Sites",[800,1149,1150,1151,1154,1155,1158],{},"If the Network tab shows a pile of ",[822,1152,1153],{},".m4s"," \u002F ",[822,1156,1157],{},".chunk"," requests but no manifest file, the site uses MSE plus custom segmentation logic (YouTube is the textbook example). Two options:",[1129,1160,1161,1176],{},[952,1162,1163,1164,1167,1168,1172,1173,938],{},"Find a ",[822,1165,1166],{},".mpd"," (DASH) entry and switch to the ",[859,1169,1171],{"href":1170},"\u002Fdash-downloader","DASH Downloader","; see ",[859,1174,1175],{"href":165},"DASH has no audio",[952,1177,1178,1179,1181,1182,1185,1186,1188],{},"Check the ",[822,1180,1139],{}," tag's ",[822,1183,1184],{},"src",". If it starts with ",[822,1187,1095],{},", that's MSE-generated and not directly downloadable—you'll have to wait for the site to serve a native HLS\u002FDASH manifest.",[920,1190,1191],{},[800,1192,1193,1194,1197,1198,1202,1203,938],{},"For how detection actually works (",[822,1195,1196],{},"webRequest.onBeforeRequest",", Content-Type sniffing) and the full list of 25+ MIME types, see ",[859,1199,1201],{"href":1200},"\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#detection-principles","Video Sniffing — Detection Principles",". For the systematic flow when nothing is detected, see ",[859,1204,1206],{"href":1205},"\u002Fdocs\u002Ftroubleshooting\u002Fcommon-issues#media-detection-issues","Common Issues — Media Detection Issues",[804,1208],{},[807,1210,876],{"id":1211},"manifest-parsing-issues",[800,1213,1214,1216],{},[956,1215,988],{},": M3U8 detected, but the quality list is empty, or the segment count is abnormally low (say, 1), and the download comes out a few KB.",[1002,1218,1220],{"id":1219},"master-or-media-playlist","Master or Media Playlist",[800,1222,1223],{},"HLS manifests come in two layers. If the popup shows a Media Playlist (the segment list itself), you may not have quality options to pick. Conversely, if you only have a Master Playlist URL but all variants parse empty, the manifest content is probably incomplete.",[815,1225,1228],{"className":1226,"code":1227,"language":820},[818],"Master Playlist          ← lists 360p \u002F 720p \u002F 1080p variants\n    └── v_720.m3u8       ← Media Playlist, lists hundreds of .ts segments\n            └── seg-001.ts, seg-002.ts, ...\n",[822,1229,1227],{"__ignoreMap":824},[1002,1231,1233],{"id":1232},"inspect-the-manifest-yourself","Inspect the Manifest Yourself",[800,1235,1236,1237,1240],{},"Copy the M3U8 URL and take a look with ",[822,1238,1239],{},"curl"," (swap in your URL):",[815,1242,1246],{"className":1243,"code":1244,"language":1245,"meta":824,"style":824},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -sL \"https:\u002F\u002Fcdn.example.com\u002Findex.m3u8\"\n","bash",[822,1247,1248],{"__ignoreMap":824},[1249,1250,1253,1256,1260,1264,1267],"span",{"class":1251,"line":1252},"line",1,[1249,1254,1239],{"class":1255},"sBMFI",[1249,1257,1259],{"class":1258},"sfazB"," -sL",[1249,1261,1263],{"class":1262},"sMK4o"," \"",[1249,1265,1266],{"class":1258},"https:\u002F\u002Fcdn.example.com\u002Findex.m3u8",[1249,1268,1269],{"class":1262},"\"\n",[800,1271,1272,1273,1276],{},"A healthy Master Playlist shows ",[822,1274,1275],{},"#EXT-X-STREAM-INF"," lines:",[815,1278,1281],{"className":1279,"code":1280,"language":820},[818],"#EXTM3U\n#EXT-X-VERSION:6\n#EXT-X-STREAM-INF:BANDWIDTH=3000000,RESOLUTION=1280x720\nv_720.m3u8\n#EXT-X-STREAM-INF:BANDWIDTH=8000000,RESOLUTION=1920x1080\nv_1080.m3u8\n",[822,1282,1280],{"__ignoreMap":824},[800,1284,1285,1286,1289],{},"A healthy Media Playlist shows ",[822,1287,1288],{},"#EXTINF"," plus segment URLs:",[815,1291,1294],{"className":1292,"code":1293,"language":820},[818],"#EXTM3U\n#EXT-X-TARGETDURATION:6\n#EXT-X-VERSION:3\n#EXTINF:6.0,\nseg-001.ts\n#EXTINF:6.0,\nseg-002.ts\n#EXTINF:4.2,\nseg-003.ts\n#EXT-X-ENDLIST\n",[822,1295,1293],{"__ignoreMap":824},[1002,1297,1299],{"id":1298},"common-anomalies","Common Anomalies",[826,1301,1302,1315],{},[829,1303,1304],{},[832,1305,1306,1309,1312],{},[835,1307,1308],{},"What you see",[835,1310,1311],{},"Problem",[835,1313,1314],{},"Action",[845,1316,1317,1332,1346,1361,1375],{},[832,1318,1319,1322,1325],{},[850,1320,1321],{},"A whole HTML page (login\u002Ferror page)",[850,1323,1324],{},"URL redirected by anti-hotlink protection",[850,1326,1327,1328],{},"See ",[859,1329,1331],{"href":1330},"#403-and-anti-hotlinking","403 and Anti-Hotlinking",[832,1333,1334,1340,1343],{},[850,1335,1336,1337],{},"Just ",[822,1338,1339],{},"#EXTM3U",[850,1341,1342],{},"Manifest truncated or incomplete response",[850,1344,1345],{},"Reopen the page and grab a fresh URL",[832,1347,1348,1354,1357],{},[850,1349,1350,1353],{},[822,1351,1352],{},"#EXT-X-KEY"," present but no segments",[850,1355,1356],{},"Key fetch failed, blocking segment output",[850,1358,1327,1359],{},[859,1360,904],{"href":903},[832,1362,1363,1369,1372],{},[850,1364,1365,1368],{},[822,1366,1367],{},"#EXT-X-ENDLIST"," but fewer than 5 segments",[850,1370,1371],{},"Live stream just started or already ended",[850,1373,1374],{},"Download the replay only after the stream ends",[832,1376,1377,1380,1383],{},[850,1378,1379],{},"Segment URLs are relative paths",[850,1381,1382],{},"Normal; the parser resolves them against the base URL",[850,1384,1385],{},"Nothing to do",[920,1387,1388],{},[800,1389,1390,1391,1394,1395,1397,1398,938],{},"Real HLS manifests are far messier than tutorials (multiple audio tracks, subtitles, ",[822,1392,1393],{},"CODECS"," fields, discontinuity tags)—exactly where naive downloaders fall over. For full parsing details see the ",[859,1396,937],{"href":936}," and ",[859,1399,1401],{"href":1400},"\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#master-playlist-vs-media-playlist","Video Sniffing — Master Playlist vs Media Playlist",[804,1403],{},[807,1405,890],{"id":1406},"segment-downloads-failing",[800,1408,1409,1411],{},[956,1410,988],{},": Progress stalls or errors halfway, or the Console floods with 403\u002F404\u002FCORS errors.",[1002,1413,1331],{"id":1414},"_403-and-anti-hotlinking",[800,1416,1417,1418,1421,1422,1425],{},"A ",[822,1419,1420],{},"403 Forbidden"," on segments or the manifest almost always means an ",[956,1423,1424],{},"anti-hotlink check"," failed. Three common flavors:",[826,1427,1428,1441],{},[829,1429,1430],{},[832,1431,1432,1435,1438],{},[835,1433,1434],{},"Type",[835,1436,1437],{},"What it looks like",[835,1439,1440],{},"How FlowPick handles it",[845,1442,1443,1456,1467],{},[832,1444,1445,1448,1453],{},[850,1446,1447],{},"Referer check",[850,1449,1450,1452],{},[822,1451,1239],{}," works but the extension sometimes gets 403",[850,1454,1455],{},"From v1.1.1 the extension auto-injects the page's Referer",[832,1457,1458,1461,1464],{},[850,1459,1460],{},"Cookie \u002F login state",[850,1462,1463],{},"403 when logged out, fine when logged in",[850,1465,1466],{},"Use the extension on the original video page so cookies ride along",[832,1468,1469,1472,1479],{},[850,1470,1471],{},"Short-lived token",[850,1473,1474,1475,1478],{},"URL has ",[822,1476,1477],{},"?token=xxx&expires=yyy",", dead in minutes",[850,1480,1481],{},"See \"Expired URLs\" below",[1483,1484,1486],"h4",{"id":1485},"anti-hotlink-proxy-in-the-extension-v111","Anti-hotlink proxy in the extension (v1.1.1+)",[800,1488,1489,1490,1493,1494,1497],{},"Since v1.1.1, FlowPick ships an ",[956,1491,1492],{},"anti-hotlink proxy for previews and downloads",": image lists, video covers, hover previews, and image\u002Faudio\u002Fdocument\u002Fsubtitle downloads all go through the proxy automatically, carrying the page's ",[822,1495,1496],{},"Referer"," and cookies, and the response is checked before saving—so an anti-hotlink HTML error page never gets stored as an image or audio file.",[1499,1500,1501],"tip",{},[800,1502,1503,1504,938],{},"On an older version? Upgrading to v1.1.1+ noticeably improves download success on Referer-checked sites like Bilibili. See ",[859,1505,1507],{"href":1506},"\u002Fdocs\u002Fgetting-started\u002Finstallation#updating-extensions","Installation — Updating Extensions",[1483,1509,1511],{"id":1510},"why-online-tools-often-get-403","Why online tools often get 403",[800,1513,1514,1515,1518,1519,1522],{},"Online tools run on ",[822,1516,1517],{},"flowpick.com",", and the browser won't forward the target site's cookies or the original page's Referer. As long as the source site has anti-hotlinking, an online tool will basically always fail. ",[956,1520,1521],{},"For anti-hotlinked sites, use the extension"," on the original video page.",[1483,1524,1526],{"id":1525},"reproduce-403-with-curl","Reproduce 403 with curl",[800,1528,1529],{},"Fastest way to confirm a Referer issue:",[815,1531,1533],{"className":1243,"code":1532,"language":1245,"meta":824,"style":824},"# Without a Referer, likely 403\ncurl -I \"https:\u002F\u002Fcdn.example.com\u002Fseg-001.ts\"\n\n# With the original page's Referer, should be 200\ncurl -I -H \"Referer: https:\u002F\u002Fwww.example.com\u002Fwatch\u002F123\" \"https:\u002F\u002Fcdn.example.com\u002Fseg-001.ts\"\n",[822,1534,1535,1541,1556,1563,1569],{"__ignoreMap":824},[1249,1536,1537],{"class":1251,"line":1252},[1249,1538,1540],{"class":1539},"sHwdD","# Without a Referer, likely 403\n",[1249,1542,1544,1546,1549,1551,1554],{"class":1251,"line":1543},2,[1249,1545,1239],{"class":1255},[1249,1547,1548],{"class":1258}," -I",[1249,1550,1263],{"class":1262},[1249,1552,1553],{"class":1258},"https:\u002F\u002Fcdn.example.com\u002Fseg-001.ts",[1249,1555,1269],{"class":1262},[1249,1557,1559],{"class":1251,"line":1558},3,[1249,1560,1562],{"emptyLinePlaceholder":1561},true,"\n",[1249,1564,1566],{"class":1251,"line":1565},4,[1249,1567,1568],{"class":1539},"# With the original page's Referer, should be 200\n",[1249,1570,1572,1574,1576,1579,1581,1584,1587,1589,1591],{"class":1251,"line":1571},5,[1249,1573,1239],{"class":1255},[1249,1575,1548],{"class":1258},[1249,1577,1578],{"class":1258}," -H",[1249,1580,1263],{"class":1262},[1249,1582,1583],{"class":1258},"Referer: https:\u002F\u002Fwww.example.com\u002Fwatch\u002F123",[1249,1585,1586],{"class":1262},"\"",[1249,1588,1263],{"class":1262},[1249,1590,1553],{"class":1258},[1249,1592,1269],{"class":1262},[800,1594,1595],{},"If the second one returns 200, it's a Referer check, confirmed.",[1002,1597,1599],{"id":1598},"expired-urls-dynamic-tokens","Expired URLs (Dynamic Tokens)",[800,1601,1602,1603,1606],{},"Live replays and some VOD platforms use ",[956,1604,1605],{},"short-lived tokens",":",[815,1608,1611],{"className":1609,"code":1610,"language":820},[818],"https:\u002F\u002Fcdn.example.com\u002Fseg-001.ts?token=ab12cd34&expires=1692300000\n",[822,1612,1610],{"__ignoreMap":824},[800,1614,1615,1618],{},[822,1616,1617],{},"expires"," is a Unix timestamp; past that point everything returns 403\u002F404. The symptoms:",[1129,1620,1621,1624],{},[952,1622,1623],{},"Download starts fine, then suddenly every segment 403s halfway through.",[952,1625,1626],{},"Reopening the page works again, but it dies again after a while.",[800,1628,1629,1606],{},[956,1630,1631],{},"What to do",[1129,1633,1634,1640],{},[952,1635,1636,1639],{},[956,1637,1638],{},"Start the download as soon as"," the manifest is detected. Don't linger in the popup.",[952,1641,1642],{},"If a big file gets cut off by a token, refresh the original page so the extension grabs a fresh manifest and continues what's left. (FlowPick's retry handles transient hiccups, but an expired token is a hard failure—you need a new manifest.)",[920,1644,1645],{},[800,1646,1647,1648,1651,1652,938],{},"FlowPick's download retry uses exponential backoff, which covers temporary network blips but ",[956,1649,1650],{},"cannot"," bypass hard failures like an expired token. Retry internals: ",[859,1653,1655],{"href":1654},"\u002Fdocs\u002Fadvanced\u002Fdownload-engine#retry-mechanism","Download Engine Architecture — Retry Mechanism",[1002,1657,1659],{"id":1658},"_404-segments-deleted","404: Segments Deleted",[800,1661,1662],{},"Mostly a live-replay thing—platforms keep replay segments for a limited window after the broadcast ends, then they 404.",[1129,1664,1665,1668],{},[952,1666,1667],{},"Try a different quality (different qualities may map to different segment files).",[952,1669,1670],{},"Confirm the replay is still within its retention window.",[1002,1672,1674],{"id":1673},"cors-errors","CORS Errors",[800,1676,1417,1677,1680,1681,1684,1685,1688],{},[822,1678,1679],{},"has been blocked by CORS policy"," error in the Console is basically always an ",[956,1682,1683],{},"online tool"," problem. The extension has ",[822,1686,1687],{},"host_permissions"," and isn't subject to the same-origin policy.",[826,1690,1691,1703],{},[829,1692,1693],{},[832,1694,1695,1698,1701],{},[835,1696,1697],{},"Tool",[835,1699,1700],{},"CORS behavior",[835,1702,1314],{},[845,1704,1705,1716],{},[832,1706,1707,1710,1713],{},[850,1708,1709],{},"Browser extension",[850,1711,1712],{},"Never triggers CORS",[850,1714,1715],{},"—",[832,1717,1718,1721,1724],{},[850,1719,1720],{},"Online tool",[850,1722,1723],{},"Manifest\u002Fsegment cross-origin fetch blocked",[850,1725,1726,1727],{},"Switch to the extension; or check whether the source returns ",[822,1728,1729],{},"Access-Control-Allow-Origin",[920,1731,1732],{},[800,1733,1734,1735,938],{},"CORS is a browser security mechanism, not a bug. For the feature gap between online tools and the extension and which to pick, see ",[859,1736,1738],{"href":1737},"\u002Fdocs\u002Fadvanced\u002Fonline-tools#differences-from-extension","Online Tools — Differences from Extension",[1002,1740,1742],{"id":1741},"network-interruptions-mid-download","Network Interruptions Mid-Download",[800,1744,1745],{},"Transient blips are covered by the retry mechanism. For persistent failures:",[1129,1747,1748,1756,1759],{},[952,1749,1750,1751,1755],{},"Check network stability (especially behind a proxy\u002FVPN; see ",[859,1752,1754],{"href":1753},"\u002Fdocs\u002Ftroubleshooting\u002Fcommon-issues#proxy-vpn-environment","Common Issues — Proxy\u002FVPN Environment",").",[952,1757,1758],{},"Drop concurrency to 2-3 to reduce simultaneous connections (some CDNs reject high concurrency).",[952,1760,1761],{},"Check whether a firewall is blocking the streaming CDN host.",[920,1763,1764],{},[800,1765,1766,1767,1769,1770,938],{},"How many concurrent downloads? The default of 2 is conservative; 4-6 is fine on desktop broadband, drop to 2-3 on rate-limited CDNs. Configure in ",[859,1768,28],{"href":29},". How concurrency affects performance: ",[859,1771,1773],{"href":1772},"\u002Fdocs\u002Fadvanced\u002Fdownload-engine#concurrency-vs-performance","Download Engine Architecture — Concurrency vs Performance",[804,1775],{},[807,1777,904],{"id":1778},"encrypted-streams-failing-to-decrypt",[800,1780,1781,1783,1784,1786],{},[956,1782,988],{},": The manifest has ",[822,1785,1352],{},", the download completes, but the merged output is silent\u002Fcorrupt\u002Fwon't play, or the Console reports a decrypt error.",[1002,1788,1790],{"id":1789},"aes-128-vs-drm-know-the-difference","AES-128 vs DRM: Know the Difference",[800,1792,1793,1794,1797],{},"FlowPick only supports ",[956,1795,1796],{},"AES-128",", the \"plain\" encryption. Manifests with these tags won't download, period:",[815,1799,1802],{"className":1800,"code":1801,"language":820},[818],"# AES-128 — supported\n#EXT-X-KEY:METHOD=AES-128,URI=\"https:\u002F\u002Fcdn.example.com\u002Fkey.bin\",IV=0x...\n\n# SAMPLE-AES \u002F FairPlay — not supported (DRM-adjacent)\n#EXT-X-KEY:METHOD=SAMPLE-AES,URI=\"skd:\u002F\u002F...\"\n\n# Widevine \u002F PlayReady (common in DASH) — not supported\n\u003CContentProtection schemeIdUri=\"...\"\u002F>\n",[822,1803,1801],{"__ignoreMap":824},[1002,1805,1807],{"id":1806},"common-aes-128-decryption-failures","Common AES-128 Decryption Failures",[826,1809,1810,1820],{},[829,1811,1812],{},[832,1813,1814,1816,1818],{},[835,1815,1014],{},[835,1817,1017],{},[835,1819,1314],{},[845,1821,1822,1833,1844,1860],{},[832,1823,1824,1827,1830],{},[850,1825,1826],{},"Key URL 403\u002F404",[850,1828,1829],{},"Console reports key fetch failure",[850,1831,1832],{},"Use the extension on the original page (carries Cookie\u002FReferer); keys can be tokenized too",[832,1834,1835,1838,1841],{},[850,1836,1837],{},"Key requires login",[850,1839,1840],{},"Key 403s logged out, works logged in",[850,1842,1843],{},"Log in first, then download",[832,1845,1846,1849,1857],{},[850,1847,1848],{},"Missing IV",[850,1850,1851,1853,1854],{},[822,1852,1352],{}," has no ",[822,1855,1856],{},"IV=",[850,1858,1859],{},"FlowPick derives the IV from the segment index per spec; nothing to do",[832,1861,1862,1865,1870],{},[850,1863,1864],{},"Key isn't 16 bytes",[850,1866,1867,1868],{},"Wrong length via ",[822,1869,1239],{},[850,1871,1872],{},"Source-site anomaly; not something FlowPick can fix",[1002,1874,1876],{"id":1875},"verify-the-key-with-curl","Verify the Key with curl",[815,1878,1880],{"className":1243,"code":1879,"language":1245,"meta":824,"style":824},"# Check whether the key is fetchable—remember to send Referer\u002FCookie\ncurl -sL -H \"Referer: https:\u002F\u002Fwww.example.com\u002Fwatch\u002F123\" \\\n     \"https:\u002F\u002Fcdn.example.com\u002Fkey.bin\" | wc -c\n# Should output 16\n",[822,1881,1882,1887,1905,1924],{"__ignoreMap":824},[1249,1883,1884],{"class":1251,"line":1252},[1249,1885,1886],{"class":1539},"# Check whether the key is fetchable—remember to send Referer\u002FCookie\n",[1249,1888,1889,1891,1893,1895,1897,1899,1901],{"class":1251,"line":1543},[1249,1890,1239],{"class":1255},[1249,1892,1259],{"class":1258},[1249,1894,1578],{"class":1258},[1249,1896,1263],{"class":1262},[1249,1898,1583],{"class":1258},[1249,1900,1586],{"class":1262},[1249,1902,1904],{"class":1903},"sTEyZ"," \\\n",[1249,1906,1907,1910,1913,1915,1918,1921],{"class":1251,"line":1558},[1249,1908,1909],{"class":1262},"     \"",[1249,1911,1912],{"class":1258},"https:\u002F\u002Fcdn.example.com\u002Fkey.bin",[1249,1914,1586],{"class":1262},[1249,1916,1917],{"class":1262}," |",[1249,1919,1920],{"class":1255}," wc",[1249,1922,1923],{"class":1258}," -c\n",[1249,1925,1926],{"class":1251,"line":1565},[1249,1927,1928],{"class":1539},"# Should output 16\n",[800,1930,1931],{},"Anything other than 16 means the key itself is broken. If it's 16 but the extension still fails to decrypt, the extension's request likely didn't carry the Cookie\u002FReferer (upgrade to v1.1.1+, where the anti-hotlink proxy adds them automatically).",[1002,1933,1935],{"id":1934},"what-about-drm-content","What About DRM Content",[800,1937,1938,1939,1942,1943,938],{},"Widevine, PlayReady, FairPlay, and SAMPLE-AES content is ",[956,1940,1941],{},"explicitly refused"," by FlowPick—that's a feature, not a bug. Any downloader that claims to break DRM is either lying or breaking the law. For the legal and technical line, see ",[859,1944,1946],{"href":1945},"\u002Fblog\u002Fis-it-legal-to-download-streaming-video","Is It Legal to Download Streaming Video",[920,1948,1949],{},[800,1950,1951,1952,1956,1957,938],{},"How DRM is detected and the full list of unsupported content: ",[859,1953,1955],{"href":1954},"\u002Fdocs\u002Ftroubleshooting\u002Fknown-issues#drm-protected-content","Known Limitations — DRM Protected Content",". The Web Crypto implementation behind AES-128 decryption: ",[859,1958,1960],{"href":1959},"\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#encrypted-streams-aes-128","Video Sniffing — Encrypted Streams (AES-128)",[804,1962],{},[807,1964,918],{"id":1965},"merged-file-wont-play",[800,1967,1968,1970],{},[956,1969,988],{},": The file downloaded, size looks right, but VLC\u002Fthe player won't open it, or there's picture but no sound, or audio drifts out of sync.",[1002,1972,1974],{"id":1973},"test-with-vlc-first","Test with VLC First",[800,1976,1977],{},"VLC is the most forgiving player around. Use it to rule out a \"player problem\":",[1129,1979,1980,1983],{},[952,1981,1982],{},"Plays in VLC but not the system player → codec\u002Fcontainer compatibility issue; use another player.",[952,1984,1985],{},"Won't play in VLC either → the file itself is broken.",[1002,1987,1005],{"id":1988},"common-causes-1",[826,1990,1991,2002],{},[829,1992,1993],{},[832,1994,1995,1998,2000],{},[835,1996,1997],{},"Symptom",[835,1999,1014],{},[835,2001,1314],{},[845,2003,2004,2017,2028,2039,2050],{},[832,2005,2006,2009,2012],{},[850,2007,2008],{},"File is only a few KB",[850,2010,2011],{},"Downloaded the manifest, not the video",[850,2013,2014,2015],{},"Re-pick the resource; make sure you chose the video, not the ",[822,2016,992],{},[832,2018,2019,2022,2025],{},[850,2020,2021],{},"Picture but no audio",[850,2023,2024],{},"Multi-audio-track manifest: only the video track was grabbed",[850,2026,2027],{},"See \"Multi-Audio-Track Manifests\" below",[832,2029,2030,2033,2036],{},[850,2031,2032],{},"Audio out of sync",[850,2034,2035],{},"Non-continuous PTS across HLS segments",[850,2037,2038],{},"Switch to TS output, or re-encode with FFmpeg",[832,2040,2041,2044,2047],{},[850,2042,2043],{},"Corrupt\u002Fglitchy video",[850,2045,2046],{},"One or more segments failed, merge incomplete",[850,2048,2049],{},"Re-download and make sure every segment completes",[832,2051,2052,2055,2061],{},[850,2053,2054],{},"MP4 won't open but TS does",[850,2056,2057,2060],{},[822,2058,2059],{},"stsd"," box written wrong during remux",[850,2062,2063],{},"See \"TS vs MP4 Output Formats\" below",[1002,2065,2067],{"id":2066},"multi-audio-track-manifests","Multi-Audio-Track Manifests",[800,2069,2070],{},"Real HLS manifests (Netflix, Disney+ and the like) often split audio and video into separate playlists:",[815,2072,2075],{"className":2073,"code":2074,"language":820},[818],"#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=\"aac-128\",NAME=\"English\",DEFAULT=YES,URI=\"audio\u002Feng_128.m3u8\"\n#EXT-X-STREAM-INF:BANDWIDTH=3000000,...,AUDIO=\"aac-128\"\nv_720.m3u8\n",[822,2076,2074],{"__ignoreMap":824},[800,2078,2079,2080,2083,2084,2087,2088,938],{},"If a downloader only grabs ",[822,2081,2082],{},"v_720.m3u8"," and concatenates segments, you get a silent video. FlowPick fetches the audio track too and merges it—but only if you select a variant that ",[956,2085,2086],{},"includes audio"," rather than the video stream alone. Full handling of multi-audio manifests: ",[859,2089,2090],{"href":936},"HLS deep dive — EXT-X-MEDIA",[1002,2092,2094],{"id":2093},"ts-vs-mp4-output-formats","TS vs MP4 Output Formats",[800,2096,2097,2098,2101],{},"If MP4 won't open, switch to ",[956,2099,2100],{},"TS output"," first. Why:",[1129,2103,2104,2107],{},[952,2105,2106],{},"TS segments are concatenated raw; MPEG-TS carries its own codec info, so it almost never goes wrong.",[952,2108,2109,2110,2112,2113,2115],{},"MP4 remuxing has to parse the ",[822,2111,1393],{}," field and write the ",[822,2114,2059],{}," box correctly—nonstandard codec identifiers trip it up.",[800,2117,2118],{},"If TS plays but MP4 doesn't, it's a remux problem. Use TS as a stopgap, or remux manually with FFmpeg:",[815,2120,2122],{"className":1243,"code":2121,"language":1245,"meta":824,"style":824},"ffmpeg -i output.ts -c copy output.mp4\n",[822,2123,2124],{"__ignoreMap":824},[1249,2125,2126,2129,2132,2135,2138,2141],{"class":1251,"line":1252},[1249,2127,2128],{"class":1255},"ffmpeg",[1249,2130,2131],{"class":1258}," -i",[1249,2133,2134],{"class":1258}," output.ts",[1249,2136,2137],{"class":1258}," -c",[1249,2139,2140],{"class":1258}," copy",[1249,2142,2143],{"class":1258}," output.mp4\n",[800,2145,2146,2149],{},[822,2147,2148],{},"-c copy"," skips re-encoding, so it's done in seconds.",[920,2151,2152],{},[800,2153,2154,2155,2157,2158,938],{},"Remuxing theory and the FFmpeg WASM implementation: ",[859,2156,60],{"href":61},". The full in-browser merge flow: ",[859,2159,2161],{"href":2160},"\u002Fblog\u002Fhow-flowpick-merges-video-segments-in-browser","How FlowPick Merges Video Segments in the Browser",[804,2163],{},[807,2165,2167],{"id":2166},"large-files-browser-freezes","Large Files \u002F Browser Freezes",[800,2169,2170,2172],{},[956,2171,988],{},": The browser stutters or crashes on files over 1 GB, or the download dies at some percentage.",[800,2174,2175,2176,2179],{},"This is a ",[956,2177,2178],{},"write strategy"," problem, not an HLS one. FlowPick's three-tier write strategy:",[826,2181,2182,2195],{},[829,2183,2184],{},[832,2185,2186,2189,2192],{},[835,2187,2188],{},"Strategy",[835,2190,2191],{},"Trigger",[835,2193,2194],{},"Ceiling",[845,2196,2197,2208,2218],{},[832,2198,2199,2202,2205],{},[850,2200,2201],{},"File System Access API",[850,2203,2204],{},"Chrome\u002FEdge 86+",[850,2206,2207],{},"No hard limit",[832,2209,2210,2213,2216],{},[850,2211,2212],{},"StreamSaver.js",[850,2214,2215],{},"Browsers with Service Worker support",[850,2217,2207],{},[832,2219,2220,2223,2226],{},[850,2221,2222],{},"Blob fallback",[850,2224,2225],{},"Everything else",[850,2227,2228],{},[956,2229,2230],{},"1.5 GB hard limit",[800,2232,2233],{},"In Blob mode, files over 1.5 GB are refused outright. The fixes:",[1129,2235,2236,2239,2242],{},[952,2237,2238],{},"Use Chrome\u002FEdge 86+ and enable \"Choose save directory.\"",[952,2240,2241],{},"Firefox has no FSA; large files go through StreamSaver or OPFS temp storage (optimized in v1.1.1+).",[952,2243,2244],{},"As a last resort, drop concurrency to 1-2 to cut memory usage.",[920,2246,2247],{},[800,2248,2249,2250,2254,2255,2259,2260,938],{},"Tier comparison and fallback logic: ",[859,2251,2253],{"href":2252},"\u002Fdocs\u002Fadvanced\u002Fdownload-engine#strategy-comparison-summary","Download Engine Architecture — Strategy Comparison Summary",". Large-file troubleshooting: ",[859,2256,2258],{"href":2257},"\u002Fdocs\u002Ftroubleshooting\u002Fcommon-issues#large-file-download-failure","Common Issues — Large File Download Failure",". How Firefox handles OPFS temp storage: ",[859,2261,2263],{"href":2262},"\u002Fdocs\u002Fgetting-started\u002Finstallation#firefox","Installation — Firefox",[804,2265],{},[807,2267,2269],{"id":2268},"diagnostics-cheat-sheet","Diagnostics Cheat Sheet",[800,2271,1109,2272,2274],{},[822,2273,1112],{}," to open DevTools. These are the most useful checkpoints:",[826,2276,2277,2290],{},[829,2278,2279],{},[832,2280,2281,2284,2287],{},[835,2282,2283],{},"What to check",[835,2285,2286],{},"Panel",[835,2288,2289],{},"How",[845,2291,2292,2305,2321,2332,2349],{},[832,2293,2294,2297,2299],{},[850,2295,2296],{},"Was M3U8 requested at all",[850,2298,1116],{},[850,2300,2301,2302,2304],{},"Filter by ",[822,2303,1120],{},", refresh the page, play the video",[832,2306,2307,2310,2312],{},[850,2308,2309],{},"Segment request status codes",[850,2311,1116],{},[850,2313,2301,2314,2317,2318,2320],{},[822,2315,2316],{},".ts"," or ",[822,2319,1153],{},", look at the Status column",[832,2322,2323,2326,2329],{},[850,2324,2325],{},"What headers the request carried",[850,2327,2328],{},"Network → select request → Headers",[850,2330,2331],{},"Look at Request Headers for Referer\u002FCookie",[832,2333,2334,2337,2340],{},[850,2335,2336],{},"Decrypt errors",[850,2338,2339],{},"Console",[850,2341,2342,2343,2317,2346],{},"Search for ",[822,2344,2345],{},"decrypt",[822,2347,2348],{},"AES",[832,2350,2351,2354,2356],{},[850,2352,2353],{},"Merge errors",[850,2355,2339],{},[850,2357,2342,2358,2317,2360],{},[822,2359,2128],{},[822,2361,2362],{},"wasm",[1002,2364,2366],{"id":2365},"generate-an-environment-diagnostic-report","Generate an Environment Diagnostic Report",[800,2368,2369],{},"For stubborn issues, run this in the Console to produce environment info you can share:",[815,2371,2375],{"className":2372,"code":2373,"language":2374,"meta":824,"style":824},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const report = {\n  ua: navigator.userAgent,\n  fsa: 'showDirectoryPicker' in window,\n  sab: typeof SharedArrayBuffer !== 'undefined',\n  coi: self.crossOriginIsolated,\n  storage: await navigator.storage?.estimate().catch(() => null),\n  ts: new Date().toISOString(),\n}\nconsole.log(JSON.stringify(report, null, 2))\n","javascript",[822,2376,2377,2382,2387,2392,2397,2402,2408,2414,2420],{"__ignoreMap":824},[1249,2378,2379],{"class":1251,"line":1252},[1249,2380,2381],{},"const report = {\n",[1249,2383,2384],{"class":1251,"line":1543},[1249,2385,2386],{},"  ua: navigator.userAgent,\n",[1249,2388,2389],{"class":1251,"line":1558},[1249,2390,2391],{},"  fsa: 'showDirectoryPicker' in window,\n",[1249,2393,2394],{"class":1251,"line":1565},[1249,2395,2396],{},"  sab: typeof SharedArrayBuffer !== 'undefined',\n",[1249,2398,2399],{"class":1251,"line":1571},[1249,2400,2401],{},"  coi: self.crossOriginIsolated,\n",[1249,2403,2405],{"class":1251,"line":2404},6,[1249,2406,2407],{},"  storage: await navigator.storage?.estimate().catch(() => null),\n",[1249,2409,2411],{"class":1251,"line":2410},7,[1249,2412,2413],{},"  ts: new Date().toISOString(),\n",[1249,2415,2417],{"class":1251,"line":2416},8,[1249,2418,2419],{},"}\n",[1249,2421,2423],{"class":1251,"line":2422},9,[1249,2424,2425],{},"console.log(JSON.stringify(report, null, 2))\n",[800,2427,2428],{},"The report only contains browser environment info—no browsing history or personal data.",[804,2430],{},[807,2432,2434],{"id":2433},"when-it-really-cant-be-downloaded","When It Really Can't Be Downloaded",[800,2436,2437,2438,2441],{},"FlowPick is built for public, standard HLS playlists. The following are ",[956,2439,2440],{},"unsupported by design",", not bugs:",[1129,2443,2444,2447,2450,2453],{},[952,2445,2446],{},"DRM-protected content (Widevine \u002F PlayReady \u002F FairPlay \u002F SAMPLE-AES)",[952,2448,2449],{},"Content behind login or paywall bypass",[952,2451,2452],{},"Sites that use MSE with custom segmentation and never serve a native M3U8\u002FMPD",[952,2454,2455],{},"Media transported over private protocols, WebSocket, or WebRTC",[800,2457,2458,2459,938],{},"In these cases, the right behavior is to error out rather than silently produce a broken file—that's FlowPick's stance. The legal and technical bottom line: ",[859,2460,1946],{"href":1945},[804,2462],{},[807,2464,2466],{"id":2465},"related-documentation","Related Documentation",[1129,2468,2469,2476,2482,2487,2492,2497,2502,2507,2512],{},[952,2470,2471,2475],{},[859,2472,2474],{"href":2473},"\u002Fm3u8-downloader","M3U8 Downloader"," — the online tool, for public streams without anti-hotlinking",[952,2477,2478,2481],{},[859,2479,2480],{"href":147},"Common Issues"," — systematic troubleshooting across all formats",[952,2483,2484,2486],{},[859,2485,40],{"href":41}," — HLS\u002FDASH detection and AES-128 decryption internals",[952,2488,2489,2491],{},[859,2490,96],{"href":97}," — segment concurrency, retry, three-tier writing",[952,2493,2494,2496],{},[859,2495,60],{"href":61}," — TS\u002FMP4 remuxing",[952,2498,2499,2501],{},[859,2500,1102],{"href":151}," — hard limits like DRM, Manifest V3, CORS",[952,2503,2504,2506],{},[859,2505,937],{"href":936}," — real manifests, encryption, and multi-track edge cases",[952,2508,2509,2511],{},[859,2510,2161],{"href":2160}," — the TS\u002FMP4 merge implementation",[952,2513,2514,2518],{},[859,2515,2517],{"href":2516},"\u002Fblog\u002Fflowpick-v1-1-1-protected-resource-preview-download","v1.1.1 Release"," — anti-hotlink proxy previews and downloads",[2520,2521,2522],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":824,"searchDepth":1543,"depth":1543,"links":2524},[2525,2526,2527,2532,2537,2544,2550,2556,2557,2560,2561],{"id":809,"depth":1543,"text":810},{"id":943,"depth":1543,"text":944},{"id":983,"depth":1543,"text":862,"children":2528},[2529,2530,2531],{"id":1004,"depth":1558,"text":1005},{"id":1105,"depth":1558,"text":1106},{"id":1146,"depth":1558,"text":1147},{"id":1211,"depth":1543,"text":876,"children":2533},[2534,2535,2536],{"id":1219,"depth":1558,"text":1220},{"id":1232,"depth":1558,"text":1233},{"id":1298,"depth":1558,"text":1299},{"id":1406,"depth":1543,"text":890,"children":2538},[2539,2540,2541,2542,2543],{"id":1414,"depth":1558,"text":1331},{"id":1598,"depth":1558,"text":1599},{"id":1658,"depth":1558,"text":1659},{"id":1673,"depth":1558,"text":1674},{"id":1741,"depth":1558,"text":1742},{"id":1778,"depth":1543,"text":904,"children":2545},[2546,2547,2548,2549],{"id":1789,"depth":1558,"text":1790},{"id":1806,"depth":1558,"text":1807},{"id":1875,"depth":1558,"text":1876},{"id":1934,"depth":1558,"text":1935},{"id":1965,"depth":1543,"text":918,"children":2551},[2552,2553,2554,2555],{"id":1973,"depth":1558,"text":1974},{"id":1988,"depth":1558,"text":1005},{"id":2066,"depth":1558,"text":2067},{"id":2093,"depth":1558,"text":2094},{"id":2166,"depth":1543,"text":2167},{"id":2268,"depth":1543,"text":2269,"children":2558},[2559],{"id":2365,"depth":1558,"text":2366},{"id":2433,"depth":1543,"text":2434},{"id":2465,"depth":1543,"text":2466},"Troubleshoot failed M3U8 and HLS downloads, including detection, CORS, expired URLs, Referer requirements, DRM, and broken segments.","md",{"date":2565,"lastModified":2565},"2026-08-17",{"icon":141},{"title":2568,"description":2562},"M3U8 Download Failed: HLS Troubleshooting Guide | FlowPick","woMjh3Eol_mCB1snz4ytVPdxWoNTTuVhi9tvwUFW4Hs",[2571,2573],{"title":155,"path":156,"stem":157,"description":2572,"icon":158,"children":-1},"High-frequency questions and answers for FlowPick usage, covering installation, download, format conversion, and troubleshooting scenarios.",{"title":164,"path":165,"stem":166,"description":2574,"icon":141,"children":-1},"Fix missing audio after downloading an MPD or MPEG-DASH stream. Covers separate tracks, missing manifest entries, CORS, DRM, and incomplete manifests.",1787670535646]