[{"data":1,"prerenderedAt":875},["ShallowReactive",2],{"blog-zh-Hans-how-to-download-direct-mp4-video":3,"blog-zh-Hans-how-to-download-direct-mp4-video-surround":864},{"id":4,"title":5,"author":6,"body":7,"category":848,"date":849,"description":850,"extension":851,"image":852,"lastModified":849,"meta":853,"navigation":422,"path":854,"readingTime":855,"seo":856,"stem":857,"tags":858,"__hash__":863},"blog_zh_Hans\u002Fzh-Hans\u002Fblog\u002Fhow-to-download-direct-mp4-video.md","如何从视频直链下载 MP4 视频","FlowPick 团队",{"type":8,"value":9,"toc":829},"minimark",[10,14,28,33,36,91,117,120,137,142,156,185,189,192,237,240,274,292,296,309,316,329,339,342,346,349,374,377,478,491,495,498,518,525,529,550,554,561,564,620,631,634,647,663,676,680,688,721,724,735,738,741,784,787,825],[11,12,5],"h1",{"id":13},"如何从视频直链下载-mp4-视频",[15,16,17,18,22,23,27],"p",{},"看到一个视频，右键没有\"另存为\"，浏览器地址栏里也没有 ",[19,20,21],"code",{},".mp4","。你八成遇到的是两种情况之一：要么是 M3U8\u002FMPD 这种分片流，要么就是",[24,25,26],"strong",{},"直链但被藏起来了","。这篇文章只讲后者：怎么把藏起来的直链挖出来，怎么判断它是不是真的能下，以及下不动的时候到底卡在哪。",[29,30,32],"h2",{"id":31},"先搞清楚什么叫视频直链","先搞清楚：什么叫视频直链",[15,34,35],{},"直链就是那种\"一个 URL 直接指向一个文件\"的下载。你拿到地址，丢进下载器，一个请求就把整个 MP4、WebM、MOV、MKV 拉下来。不像 HLS、DASH 那样要先拼清单再逐片下载。",[37,38,39,54],"table",{},[40,41,42],"thead",{},[43,44,45,48,51],"tr",{},[46,47],"th",{},[46,49,50],{},"视频直链",[46,52,53],{},"HLS \u002F DASH 流",[55,56,57,69,80],"tbody",{},[43,58,59,63,66],{},[60,61,62],"td",{},"地址指向",[60,64,65],{},"单个文件",[60,67,68],{},"清单 + 分片",[43,70,71,74,77],{},[60,72,73],{},"下载方式",[60,75,76],{},"一个请求",[60,78,79],{},"先解析清单，再逐片下载合并",[43,81,82,85,88],{},[60,83,84],{},"失败表现",[60,86,87],{},"403 \u002F 404 \u002F 空文件",[60,89,90],{},"花屏、无声、合并失败",[15,92,93,94,97,98,101,102,109,110,116],{},"下面这些内容都围绕直链展开。如果你拿到的其实是 ",[19,95,96],{},".m3u8"," 或 ",[19,99,100],{},".mpd"," 地址，别在这篇里耗——去看 ",[24,103,104],{},[105,106,108],"a",{"href":107},"\u002Fzh-Hans\u002Fblog\u002Fgetting-started-with-hls-m3u8-download","M3U8\u002FHLS 流媒体下载入门"," 或者 ",[24,111,112],{},[105,113,115],{"href":114},"\u002Fzh-Hans\u002Fblog\u002Fhow-to-download-dash-video-with-audio","如何下载带声音的 DASH 视频","，方向不对，方法全是白搭。",[29,118,119],{"id":119},"如何确认它是视频直链",[15,121,122,123,125,126,136],{},"只看 ",[19,124,21],{}," 后缀不够，很多网站会在 CDN 后面加一堆签名参数，甚至把后缀藏掉。判断标准就一个：",[24,127,128,129,132,133],{},"请求返回的 ",[19,130,131],{},"Content-Type"," 是不是 ",[19,134,135],{},"video\u002F*","。",[138,139,141],"h3",{"id":140},"方法一开发者工具看-network","方法一：开发者工具看 Network",[15,143,144,145,148,149,97,152,155],{},"打开视频页面，",[19,146,147],{},"F12"," 进开发者工具，切到 Network 面板，筛选 ",[19,150,151],{},"mp4",[19,153,154],{},"webm","，开始播放视频：",[157,158,159,170,175],"ol",{},[160,161,162,163,165,166,169],"li",{},"找到一个 URL 里带 ",[19,164,21],{}," \u002F ",[19,167,168],{},".webm"," 的请求。",[160,171,172,173,136],{},"点开看响应头的 ",[19,174,131],{},[160,176,177,178,97,181,184],{},"是 ",[19,179,180],{},"video\u002Fmp4",[19,182,183],{},"video\u002Fwebm","，这就是直链。",[138,186,188],{"id":187},"方法二curl-直接验证","方法二：curl 直接验证",[15,190,191],{},"拿到疑似地址后，用 curl 看它到底返回什么（把地址换成你自己的）：",[193,194,199],"pre",{"className":195,"code":196,"language":197,"meta":198,"style":198},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -sI \"https:\u002F\u002Fcdn.example.com\u002Fcourse\u002Flesson1.mp4\" | head -n 10\n","bash","",[19,200,201],{"__ignoreMap":198},[202,203,206,210,214,218,221,224,227,230,233],"span",{"class":204,"line":205},"line",1,[202,207,209],{"class":208},"sBMFI","curl",[202,211,213],{"class":212},"sfazB"," -sI",[202,215,217],{"class":216},"sMK4o"," \"",[202,219,220],{"class":212},"https:\u002F\u002Fcdn.example.com\u002Fcourse\u002Flesson1.mp4",[202,222,223],{"class":216},"\"",[202,225,226],{"class":216}," |",[202,228,229],{"class":208}," head",[202,231,232],{"class":212}," -n",[202,234,236],{"class":235},"sbssI"," 10\n",[15,238,239],{},"重点看两行：",[193,241,243],{"className":195,"code":242,"language":197,"meta":198,"style":198},"HTTP\u002F1.1 200 OK\nContent-Type: video\u002Fmp4\nContent-Length: 52428800\n",[19,244,245,256,265],{"__ignoreMap":198},[202,246,247,250,253],{"class":204,"line":205},[202,248,249],{"class":208},"HTTP\u002F1.1",[202,251,252],{"class":235}," 200",[202,254,255],{"class":212}," OK\n",[202,257,259,262],{"class":204,"line":258},2,[202,260,261],{"class":208},"Content-Type:",[202,263,264],{"class":212}," video\u002Fmp4\n",[202,266,268,271],{"class":204,"line":267},3,[202,269,270],{"class":208},"Content-Length:",[202,272,273],{"class":235}," 52428800\n",[15,275,276,278,279,281,282,285,286,136],{},[19,277,131],{}," 是 ",[19,280,180],{}," 说明地址是对的。如果返回的是 ",[19,283,284],{},"text\u002Fhtml","，说明这根本不是视频，是一个网页——你复制错地址了。直链的检测原理和格式支持范围，见 ",[24,287,288],{},[105,289,291],{"href":290},"\u002Fzh-Hans\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#%E6%94%AF%E6%8C%81%E7%9A%84%E8%A7%86%E9%A2%91%E6%A0%BC%E5%BC%8F","视频嗅探 — 支持的视频格式",[29,293,295],{"id":294},"用-flowpick-扩展下载","用 FlowPick 扩展下载",[15,297,298,299,302,303,305,306,308],{},"第 1 步，打开视频",[24,300,301],{},"实际播放","的页面，播放几秒，让直链真的被请求一次。\n第 2 步，打开 FlowPick 扩展，在资源列表里筛选\"视频\"，挑出 ",[19,304,180],{},"、",[19,307,183],{}," 类型的条目，别选缩略图或封面图。\n第 3 步，确认右侧预览能正常播放，格式无误后点下载。\n第 4 步，下载完成后打开文件，确认能播放再关掉原页面。",[15,310,311],{},[312,313],"img",{"alt":314,"src":315},"FlowPick 下载直链视频","\u002Fscreenshots\u002Fdirect-video-download.png",[15,317,318,319,322,323,136],{},"扩展跑在源页面上下文里，Referer、Cookie 自动带上，大部分防盗链校验直接过。",[24,320,321],{},"这是扩展比在线工具强的地方","，在线工具跑在自己域名下，带不了目标站点的登录态。两者差异见 ",[24,324,325],{},[105,326,328],{"href":327},"\u002Fzh-Hans\u002Fdocs\u002Fadvanced\u002Fonline-tools#%E4%B8%8E%E6%89%A9%E5%B1%95%E7%9A%84%E5%8C%BA%E5%88%AB","在线工具 — 与扩展的区别",[15,330,331,332,338],{},"如果你只是偶尔下一个、没有防盗链校验，也可以用 ",[24,333,334],{},[105,335,337],{"href":336},"\u002Fzh-Hans\u002Fvideo-downloader","在线视频下载器","，粘贴直链地址就能下。",[29,340,341],{"id":341},"常见错误逐个拆",[138,343,345],{"id":344},"_403-forbidden请求头不对","403 Forbidden：请求头不对",[15,347,348],{},"视频很少真的\"没权限\"，更多是校验没过：",[350,351,352,358,364],"ul",{},[160,353,354,357],{},[24,355,356],{},"Referer 校验","：要求请求来自特定页面，空 Referer 直接拒绝。",[160,359,360,363],{},[24,361,362],{},"Cookie \u002F 登录态","：没带登录 Cookie，或已过期。",[160,365,366,369,370,373],{},[24,367,368],{},"临时令牌","：URL 里的 ",[19,371,372],{},"?token="," 过期了。",[15,375,376],{},"用 curl 复现一下，确认是不是 Referer 的问题：",[193,378,380],{"className":195,"code":379,"language":197,"meta":198,"style":198},"# 不带任何头，看裸请求返回什么\ncurl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\\n\" \"https:\u002F\u002Fcdn.example.com\u002Fcourse\u002Flesson1.mp4\"\n\n# 带上页面 Referer 再试\ncurl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\\n\" \\\n  -H \"Referer: https:\u002F\u002Fwww.example.com\u002Fcourse\u002F123\" \\\n  \"https:\u002F\u002Fcdn.example.com\u002Fcourse\u002Flesson1.mp4\"\n",[19,381,382,388,418,424,430,453,468],{"__ignoreMap":198},[202,383,384],{"class":204,"line":205},[202,385,387],{"class":386},"sHwdD","# 不带任何头，看裸请求返回什么\n",[202,389,390,392,395,398,401,404,406,409,411,413,415],{"class":204,"line":258},[202,391,209],{"class":208},[202,393,394],{"class":212}," -s",[202,396,397],{"class":212}," -o",[202,399,400],{"class":212}," \u002Fdev\u002Fnull",[202,402,403],{"class":212}," -w",[202,405,217],{"class":216},[202,407,408],{"class":212},"%{http_code}\\n",[202,410,223],{"class":216},[202,412,217],{"class":216},[202,414,220],{"class":212},[202,416,417],{"class":216},"\"\n",[202,419,420],{"class":204,"line":267},[202,421,423],{"emptyLinePlaceholder":422},true,"\n",[202,425,427],{"class":204,"line":426},4,[202,428,429],{"class":386},"# 带上页面 Referer 再试\n",[202,431,433,435,437,439,441,443,445,447,449],{"class":204,"line":432},5,[202,434,209],{"class":208},[202,436,394],{"class":212},[202,438,397],{"class":212},[202,440,400],{"class":212},[202,442,403],{"class":212},[202,444,217],{"class":216},[202,446,408],{"class":212},[202,448,223],{"class":216},[202,450,452],{"class":451},"sTEyZ"," \\\n",[202,454,456,459,461,464,466],{"class":204,"line":455},6,[202,457,458],{"class":212},"  -H",[202,460,217],{"class":216},[202,462,463],{"class":212},"Referer: https:\u002F\u002Fwww.example.com\u002Fcourse\u002F123",[202,465,223],{"class":216},[202,467,452],{"class":451},[202,469,471,474,476],{"class":204,"line":470},7,[202,472,473],{"class":216},"  \"",[202,475,220],{"class":212},[202,477,417],{"class":216},[15,479,480,481,484,485,136],{},"带 Referer 就好了，说明是防盗链。",[24,482,483],{},"换扩展下","，扩展在源页面里跑，Referer 自动补齐，v1.1.1 之后还内置了防盗链代理，预览和下载都会自动带上正确请求头。在线工具做不到这点。代理细节见 ",[24,486,487],{},[105,488,490],{"href":489},"\u002Fzh-Hans\u002Fblog\u002Fflowpick-v1-1-1-protected-resource-preview-download","FlowPick v1.1.1 更新",[138,492,494],{"id":493},"_404-not-found地址过期或拿错了","404 Not Found：地址过期或拿错了",[15,496,497],{},"直链最烦的就是\"昨天还能下，今天 404\"。常见三种：",[350,499,500,506,512],{},[160,501,502,505],{},[24,503,504],{},"临时签名 URL 过期","：云存储（OSS、COS 等）的直链带有效期，过几分钟到几小时就失效。",[160,507,508,511],{},[24,509,510],{},"文件被清理","：上传者删了文件，或 CDN 缓存被清。",[160,513,514,517],{},[24,515,516],{},"复制错地址","：你复制的是播放页地址，不是文件直链。",[15,519,520,521,524],{},"地址真失效就没救——",[24,522,523],{},"回到原视频页面重新检测一次","，拿新的直链再下。",[138,526,528],{"id":527},"cors-错误在线工具特有的坑","CORS 错误：在线工具特有的坑",[15,530,531,532,535,536,539,540,543,544,136],{},"如果你在用",[24,533,534],{},"在线工具","下载且报 CORS 错误，这不是你操作的问题，是工具本身的限制：在线工具跑在 ",[19,537,538],{},"flowpick.com"," 域名下，浏览器同源策略会拦跨域读取。",[24,541,542],{},"换扩展","，扩展有独立权限，不受同源策略限制，检测范围和成功率都高一截。细节见 ",[24,545,546],{},[105,547,549],{"href":548},"\u002Fzh-Hans\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#%E6%89%A9%E5%B1%95%E4%B8%8E%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7%E7%9A%84%E6%A3%80%E6%B5%8B%E5%B7%AE%E5%BC%82","视频嗅探 — 扩展与在线工具的检测差异",[138,551,553],{"id":552},"文件不完整服务器不支持断点续传","文件不完整：服务器不支持断点续传",[15,555,556,557,560],{},"下载能开始，但暂停后从 0 重来，或者下到一半失败——这跟服务器支不支持 ",[24,558,559],{},"HTTP Range"," 有关。Range 允许客户端只请求文件的一部分，断点续传全靠它。",[15,562,563],{},"测一下服务器支不支持：",[193,565,567],{"className":195,"code":566,"language":197,"meta":198,"style":198},"curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\\n\" \\\n  -H \"Range: bytes=0-1023\" \\\n  \"https:\u002F\u002Fcdn.example.com\u002Fcourse\u002Flesson1.mp4\"\n# 206 = 支持 Range，可以断点续传\n# 200 = 返回完整文件，说明不支持\n",[19,568,569,589,602,610,615],{"__ignoreMap":198},[202,570,571,573,575,577,579,581,583,585,587],{"class":204,"line":205},[202,572,209],{"class":208},[202,574,394],{"class":212},[202,576,397],{"class":212},[202,578,400],{"class":212},[202,580,403],{"class":212},[202,582,217],{"class":216},[202,584,408],{"class":212},[202,586,223],{"class":216},[202,588,452],{"class":451},[202,590,591,593,595,598,600],{"class":204,"line":258},[202,592,458],{"class":212},[202,594,217],{"class":216},[202,596,597],{"class":212},"Range: bytes=0-1023",[202,599,223],{"class":216},[202,601,452],{"class":451},[202,603,604,606,608],{"class":204,"line":267},[202,605,473],{"class":216},[202,607,220],{"class":212},[202,609,417],{"class":216},[202,611,612],{"class":204,"line":426},[202,613,614],{"class":386},"# 206 = 支持 Range，可以断点续传\n",[202,616,617],{"class":204,"line":432},[202,618,619],{"class":386},"# 200 = 返回完整文件，说明不支持\n",[15,621,622,623,626,627,630],{},"返回 ",[19,624,625],{},"206"," 没问题；返回 ",[19,628,629],{},"200","（完整文件）说明不支持 Range，那就别中途暂停，一次下完。这是服务器能力问题，换工具也一样。",[29,632,633],{"id":633},"下载下来打不开怎么办",[15,635,636,637,640,641,136,644,646],{},"文件下下来了、体积也正常，但播放器报\"格式不支持\"或黑屏。这里要分清两个概念：",[24,638,639],{},"容器","和",[24,642,643],{},"编码",[19,645,21],{}," 是容器，里面装的可能是 H.264，也可能是 H.265\u002FHEVC 或 AV1。容器支持不等于编码支持，播放器得能解码里面那层编码才能放出来。",[15,648,649,650,656,657,136],{},"遇到编码不支持，用 ",[24,651,652],{},[105,653,655],{"href":654},"\u002Fzh-Hans\u002Fdocs\u002Ffeatures\u002Fformat-conversion","格式转换"," 转成兼容性更好的 H.264 MP4 就行。你的浏览器到底能播什么格式，参考 ",[24,658,659],{},[105,660,662],{"href":661},"\u002Fzh-Hans\u002Fdocs\u002Fadvanced\u002Fbrowser-compatibility","浏览器兼容性",[15,664,665,666,669,670,136],{},"大文件（几百 MB）下载到一半页面卡住，是浏览器把文件暂存在内存里的原因。FlowPick 优先走 File System Access API（选目录后流式写入，不占内存），不支持时退回 Blob 模式，大文件就可能卡。对策很简单：",[24,667,668],{},"优先选\"选择保存目录\"","，别用默认下载；实在不行就下低画质版本。Blob 模式的硬限制见 ",[24,671,672],{},[105,673,675],{"href":674},"\u002Fzh-Hans\u002Fdocs\u002Ftroubleshooting\u002Fknown-issues#blob-%E6%A8%A1%E5%BC%8F%E7%A1%AC%E9%99%90%E5%88%B6","已知限制",[29,677,679],{"id":678},"分不清直链m3u8mpd-怎么办","分不清直链、M3U8、MPD 怎么办",[15,681,682,683,97,685,687],{},"拿到的地址后缀带 ",[19,684,96],{},[19,686,100],{},"，那根本不是直链，是流媒体清单。别硬下：",[350,689,690,706],{},[160,691,692,694,695,97,701],{},[19,693,96],{}," → ",[24,696,697],{},[105,698,700],{"href":699},"\u002Fzh-Hans\u002Fm3u8-downloader","M3U8 下载工具",[24,702,703],{},[105,704,705],{"href":107},"HLS 入门教程",[160,707,708,694,710,97,716],{},[19,709,100],{},[24,711,712],{},[105,713,715],{"href":714},"\u002Fzh-Hans\u002Fdash-downloader","DASH 下载工具",[24,717,718],{},[105,719,720],{"href":114},"DASH 视频下载教程",[29,722,723],{"id":723},"小结",[15,725,726,727,729,730,734],{},"直链下载就四步：找到视频真正播放的页面 → 从 Network 或 FlowPick 里挖出 ",[19,728,135],{}," 的地址 → 用 curl 验证没拿错 → 下载完先测再走。遇到 403 换扩展、404 重新检测、CORS 别用在线工具、文件不完整先查 Range。剩下那些疑难杂症，",[105,731,733],{"href":732},"\u002Fzh-Hans\u002Fdocs\u002Ftroubleshooting\u002Fdirect-video-download","视频直链下载失败排查"," 里按症状全列出来了。请只下载你有权保存的视频。",[736,737],"hr",{},[29,739,740],{"id":740},"相关文章",[350,742,743,751,759,766,775],{},[160,744,745,750],{},[24,746,747],{},[105,748,749],{"href":732},"视频直链下载失败：403、404 与文件不完整"," —— 这篇博客的完整排查版，带 curl 诊断命令",[160,752,753,758],{},[24,754,755],{},[105,756,757],{"href":107},"如何下载 M3U8\u002FHLS 流媒体"," —— 直链的隔壁亲戚，分片流下载入门",[160,760,761,765],{},[24,762,763],{},[105,764,115],{"href":114}," —— 音视频分离的 MPD 流怎么下",[160,767,768,774],{},[24,769,770],{},[105,771,773],{"href":772},"\u002Fzh-Hans\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#%E7%9B%B4%E6%8E%A5%E8%A7%86%E9%A2%91%E6%96%87%E4%BB%B6","视频嗅探 — 直接视频文件"," —— 直链检测原理和格式范围",[160,776,777,783],{},[24,778,779],{},[105,780,782],{"href":781},"\u002Fzh-Hans\u002Fblog\u002Fhow-flowpick-merges-video-segments-in-browser","FlowPick 是怎么在浏览器里合并几百个视频分片的"," —— 分片流背后的合并原理",[29,785,786],{"id":786},"推荐阅读",[350,788,789,798,807,816],{},[160,790,791,797],{},[24,792,793],{},[105,794,796],{"href":795},"\u002Fzh-Hans\u002Fblog\u002Fhow-to-download-bilibili-videos","如何下载 Bilibili 视频"," —— 一个站里直链、DASH、HLS 三种格式全有",[160,799,800,806],{},[24,801,802],{},[105,803,805],{"href":804},"\u002Fzh-Hans\u002Fblog\u002Fflowpick-vs-yt-dlp","FlowPick vs. yt-dlp"," —— 浏览器点几下 vs 命令行敲半天",[160,808,809,815],{},[24,810,811],{},[105,812,814],{"href":813},"\u002Fzh-Hans\u002Fblog\u002Fbatch-download-images-from-any-website","批量下载网页图片"," —— 不只是视频，图片也能一键批量抓",[160,817,818,824],{},[24,819,820],{},[105,821,823],{"href":822},"\u002Fzh-Hans\u002Fblog\u002Fis-it-legal-to-download-streaming-video","流媒体下载到底合不合法？"," —— 动手之前先看看这条红线",[826,827,828],"style",{},"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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .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":198,"searchDepth":258,"depth":258,"links":830},[831,832,836,837,843,844,845,846,847],{"id":31,"depth":258,"text":32},{"id":119,"depth":258,"text":119,"children":833},[834,835],{"id":140,"depth":267,"text":141},{"id":187,"depth":267,"text":188},{"id":294,"depth":258,"text":295},{"id":341,"depth":258,"text":341,"children":838},[839,840,841,842],{"id":344,"depth":267,"text":345},{"id":493,"depth":267,"text":494},{"id":527,"depth":267,"text":528},{"id":552,"depth":267,"text":553},{"id":633,"depth":258,"text":633},{"id":678,"depth":258,"text":679},{"id":723,"depth":258,"text":723},{"id":740,"depth":258,"text":740},{"id":786,"depth":258,"text":786},"tutorials","2026-08-18","学会识别 MP4、WebM 视频直链，用 FlowPick 一键下载，并逐个拆解 403、404、CORS、文件不完整这些最常见的坑。","md",null,{},"\u002Fzh-hans\u002Fblog\u002Fhow-to-download-direct-mp4-video",9,{"title":5,"description":850},"zh-Hans\u002Fblog\u002Fhow-to-download-direct-mp4-video",[859,860,861,50,862],"视频下载","MP4","WebM","教程","GZjysVeLfVtFhXqthUp4S54LpzrU8bXGHsVqRnwauSo",[865,869],{"title":115,"path":866,"stem":867,"description":868,"date":849,"category":848,"children":-1},"\u002Fzh-hans\u002Fblog\u002Fhow-to-download-dash-video-with-audio","zh-Hans\u002Fblog\u002Fhow-to-download-dash-video-with-audio","DASH 视频下载后没声音？学会看懂 MPD 里哪个是视频、哪个是音频，别选到 video-only 流，用 FlowPick 一键合并成带声音的 MP4。",{"title":870,"path":871,"stem":872,"description":873,"date":874,"category":848,"children":-1},"如何将 TikTok 和 Twitter\u002FX 视频下载到电脑（2026 指南）","\u002Fzh-hans\u002Fblog\u002Fhow-to-download-tiktok-twitter-videos","zh-Hans\u002Fblog\u002Fhow-to-download-tiktok-twitter-videos","使用 FlowPick 一步步下载 TikTok 和 Twitter\u002FX 短视频为 MP4 文件。无需去水印工具、无需安装客户端——直接抓取浏览器已加载的视频流。","2026-08-03",1787670586433]