[{"data":1,"prerenderedAt":881},["ShallowReactive",2],{"blog-ko-how-to-download-direct-mp4-video":3,"blog-ko-how-to-download-direct-mp4-video-surround":870},{"id":4,"title":5,"author":6,"body":7,"category":854,"date":855,"description":856,"extension":857,"image":858,"lastModified":855,"meta":859,"navigation":426,"path":860,"readingTime":861,"seo":862,"stem":863,"tags":864,"__hash__":869},"blog_ko\u002Fko\u002Fblog\u002Fhow-to-download-direct-mp4-video.md","동영상 직접 링크에서 MP4 다운로드하는 방법","FlowPick 팀",{"type":8,"value":9,"toc":835},"minimark",[10,14,28,33,36,91,117,121,138,143,158,187,191,194,239,242,276,294,298,311,318,332,342,346,350,353,378,381,482,496,500,503,523,530,534,554,558,565,568,624,634,638,652,668,681,685,693,727,730,741,744,748,789,793,831],[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\u002FDASH처럼 매니페스트를 조립하고 세그먼트를 하나씩 받아올 필요가 없습니다.",[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",{},"URL이 가리키는 것",[60,64,65],{},"단일 파일",[60,67,68],{},"매니페스트 + 세그먼트",[43,70,71,74,77],{},[60,72,73],{},"다운로드 방식",[60,75,76],{},"요청 1개",[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"," URL이라면 이 글에서 끙끙대지 말고, ",[24,103,104],{},[105,106,108],"a",{"href":107},"\u002Fko\u002Fblog\u002Fgetting-started-with-hls-m3u8-download","M3U8\u002FHLS 스트리밍 다운로드 방법: 완전 초보 가이드"," 나 ",[24,111,112],{},[105,113,115],{"href":114},"\u002Fko\u002Fblog\u002Fhow-to-download-dash-video-with-audio","소리가 나오는 DASH 동영상 다운로드 방법"," 으로 가세요. 방향이 틀리면 어떤 방법도 헛수고입니다.",[29,118,120],{"id":119},"진짜-직접-링크인지-확인하는-법","진짜 직접 링크인지 확인하는 법",[15,122,123,125,126,137],{},[19,124,21],{}," 확장자만으로는 부족합니다. 많은 사이트가 CDN URL 뒤에 서명된 파라미터를 잔뜩 붙이고, 확장자를 숨기기도 합니다. 판단 기준은 딱 하나입니다. ",[24,127,128,129,132,133,136],{},"응답의 ",[19,130,131],{},"Content-Type","이 ",[19,134,135],{},"video\u002F*","인지","입니다.",[139,140,142],"h3",{"id":141},"방법-1-개발자-도구의-network-탭에서-확인","방법 1: 개발자 도구의 Network 탭에서 확인",[15,144,145,146,149,150,153,154,157],{},"동영상 페이지를 열고 ",[19,147,148],{},"F12","로 개발자 도구를 연 다음 Network 탭으로 전환하고, ",[19,151,152],{},"mp4","나 ",[19,155,156],{},"webm","으로 필터를 걸고 동영상을 재생합니다.",[159,160,161,172,178],"ol",{},[162,163,164,165,167,168,171],"li",{},"URL에 ",[19,166,21],{}," \u002F ",[19,169,170],{},".webm","이 들어 있는 요청을 찾는다.",[162,173,174,175,177],{},"열어서 응답 헤더의 ",[19,176,131],{},"을 확인한다.",[162,179,180,153,183,186],{},[19,181,182],{},"video\u002Fmp4",[19,184,185],{},"video\u002Fwebm","이면 그게 직접 링크다.",[139,188,190],{"id":189},"방법-2-curl로-직접-검증","방법 2: curl로 직접 검증",[15,192,193],{},"후보 URL이 나왔으면 curl로 실제로 뭐가 돌아오는지 봅니다(URL은 자신의 것으로 바꾸세요).",[195,196,201],"pre",{"className":197,"code":198,"language":199,"meta":200,"style":200},"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,202,203],{"__ignoreMap":200},[204,205,208,212,216,220,223,226,229,232,235],"span",{"class":206,"line":207},"line",1,[204,209,211],{"class":210},"sBMFI","curl",[204,213,215],{"class":214},"sfazB"," -sI",[204,217,219],{"class":218},"sMK4o"," \"",[204,221,222],{"class":214},"https:\u002F\u002Fcdn.example.com\u002Fcourse\u002Flesson1.mp4",[204,224,225],{"class":218},"\"",[204,227,228],{"class":218}," |",[204,230,231],{"class":210}," head",[204,233,234],{"class":214}," -n",[204,236,238],{"class":237},"sbssI"," 10\n",[15,240,241],{},"봐야 할 건 두 줄입니다.",[195,243,245],{"className":197,"code":244,"language":199,"meta":200,"style":200},"HTTP\u002F1.1 200 OK\nContent-Type: video\u002Fmp4\nContent-Length: 52428800\n",[19,246,247,258,267],{"__ignoreMap":200},[204,248,249,252,255],{"class":206,"line":207},[204,250,251],{"class":210},"HTTP\u002F1.1",[204,253,254],{"class":237}," 200",[204,256,257],{"class":214}," OK\n",[204,259,261,264],{"class":206,"line":260},2,[204,262,263],{"class":210},"Content-Type:",[204,265,266],{"class":214}," video\u002Fmp4\n",[204,268,270,273],{"class":206,"line":269},3,[204,271,272],{"class":210},"Content-Length:",[204,274,275],{"class":237}," 52428800\n",[15,277,278,132,280,282,283,286,287,293],{},[19,279,131],{},[19,281,182],{},"면 URL이 맞습니다. ",[19,284,285],{},"text\u002Fhtml","이 돌아온다면 그건 동영상이 아니라 웹 페이지입니다. URL을 잘못 복사한 겁니다. 직접 링크 탐지 원리와 지원 형식은 ",[24,288,289],{},[105,290,292],{"href":291},"\u002Fko\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-%EB%B9%84%EB%94%94%EC%98%A4-%ED%8F%AC%EB%A7%B7","동영상 탐지 — 지원하는 비디오 포맷"," 을 참고하세요.",[29,295,297],{"id":296},"flowpick-확장-프로그램으로-다운로드","FlowPick 확장 프로그램으로 다운로드",[15,299,300,301,304,305,307,308,310],{},"1단계, 동영상이 ",[24,302,303],{},"실제로 재생되는"," 페이지를 열고 몇 초 재생해서 직접 링크가 정말로 요청되게 합니다.\n2단계, FlowPick 확장 프로그램을 열고 리소스 목록을 \"동영상\"으로 필터링해서 ",[19,306,182],{},"·",[19,309,185],{}," 항목을 골라냅니다. 썸네일이나 커버 이미지는 선택하지 마세요.\n3단계, 오른쪽 미리보기에서 정상 재생되는지, 형식이 맞는지 확인한 뒤 다운로드를 누릅니다.\n4단계, 다운로드가 끝나면 파일을 열어 재생되는지 확인하고 원래 페이지를 닫습니다.",[15,312,313],{},[314,315],"img",{"alt":316,"src":317},"FlowPick으로 직접 링크 동영상 다운로드","\u002Fscreenshots\u002Fdirect-video-download.png",[15,319,320,321,324,325,331],{},"확장 프로그램은 원본 페이지 환경 안에서 돌기 때문에 Referer와 쿠키가 자동으로 따라가고, 안티 핫링크 검증은 대부분 통과합니다. ",[24,322,323],{},"바로 이 지점이 온라인 도구보다 확장 프로그램이 나은 이유","입니다. 온라인 도구는 자기 도메인에서 돌아서 대상 사이트의 로그인 상태를 가져올 수 없습니다. 이 차이는 ",[24,326,327],{},[105,328,330],{"href":329},"\u002Fko\u002Fdocs\u002Fadvanced\u002Fonline-tools#%ED%99%95%EC%9E%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EA%B3%BC%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90","온라인 도구 — 확장 프로그램과의 차이점"," 에 정리돼 있습니다.",[15,333,334,335,341],{},"가끔 한 편씩만 받고 안티 핫링크 검증이 없다면 ",[24,336,337],{},[105,338,340],{"href":339},"\u002Fko\u002Fvideo-downloader","온라인 동영상 다운로더"," 도 쓸 수 있습니다. 직접 링크 URL을 붙여 넣으면 다운로드됩니다.",[29,343,345],{"id":344},"자주-보는-오류를-하나씩","자주 보는 오류를 하나씩",[139,347,349],{"id":348},"_403-forbidden-요청-헤더가-잘못됨","403 Forbidden: 요청 헤더가 잘못됨",[15,351,352],{},"동영상이 진짜로 \"권한 없음\"인 경우는 거의 없습니다. 대부분 검증을 통과하지 못한 것입니다.",[354,355,356,362,368],"ul",{},[162,357,358,361],{},[24,359,360],{},"Referer 검증",": 특정 페이지에서 온 요청이어야 함. 빈 Referer는 즉시 거절.",[162,363,364,367],{},[24,365,366],{},"쿠키 \u002F 로그인 상태",": 로그인 쿠키가 없거나 만료됨.",[162,369,370,373,374,377],{},[24,371,372],{},"임시 토큰",": URL 안의 ",[19,375,376],{},"?token=","이 만료됨.",[15,379,380],{},"curl로 재현해서 Referer가 원인인지 확인합니다.",[195,382,384],{"className":197,"code":383,"language":199,"meta":200,"style":200},"# 헤더 없이. 맨몸 요청이 뭘 돌려주는지 본다\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,385,386,392,422,428,434,457,472],{"__ignoreMap":200},[204,387,388],{"class":206,"line":207},[204,389,391],{"class":390},"sHwdD","# 헤더 없이. 맨몸 요청이 뭘 돌려주는지 본다\n",[204,393,394,396,399,402,405,408,410,413,415,417,419],{"class":206,"line":260},[204,395,211],{"class":210},[204,397,398],{"class":214}," -s",[204,400,401],{"class":214}," -o",[204,403,404],{"class":214}," \u002Fdev\u002Fnull",[204,406,407],{"class":214}," -w",[204,409,219],{"class":218},[204,411,412],{"class":214},"%{http_code}\\n",[204,414,225],{"class":218},[204,416,219],{"class":218},[204,418,222],{"class":214},[204,420,421],{"class":218},"\"\n",[204,423,424],{"class":206,"line":269},[204,425,427],{"emptyLinePlaceholder":426},true,"\n",[204,429,431],{"class":206,"line":430},4,[204,432,433],{"class":390},"# 페이지의 Referer를 붙여 다시 시도\n",[204,435,437,439,441,443,445,447,449,451,453],{"class":206,"line":436},5,[204,438,211],{"class":210},[204,440,398],{"class":214},[204,442,401],{"class":214},[204,444,404],{"class":214},[204,446,407],{"class":214},[204,448,219],{"class":218},[204,450,412],{"class":214},[204,452,225],{"class":218},[204,454,456],{"class":455},"sTEyZ"," \\\n",[204,458,460,463,465,468,470],{"class":206,"line":459},6,[204,461,462],{"class":214},"  -H",[204,464,219],{"class":218},[204,466,467],{"class":214},"Referer: https:\u002F\u002Fwww.example.com\u002Fcourse\u002F123",[204,469,225],{"class":218},[204,471,456],{"class":455},[204,473,475,478,480],{"class":206,"line":474},7,[204,476,477],{"class":218},"  \"",[204,479,222],{"class":214},[204,481,421],{"class":218},[15,483,484,485,488,489,495],{},"Referer를 붙이니 통과하면 그게 안티 핫링크입니다. ",[24,486,487],{},"확장 프로그램으로 바꾸세요."," 확장 프로그램은 원본 페이지 안에서 돌아 Referer를 자동으로 채워 주고, v1.1.1 이후에는 안티 핫링크 프록시도 내장해서 미리보기와 다운로드 모두 올바른 요청 헤더를 자동으로 붙입니다. 온라인 도구로는 안 됩니다. 프록시 자세한 내용은 ",[24,490,491],{},[105,492,494],{"href":493},"\u002Fko\u002Fblog\u002Fflowpick-v1-1-1-protected-resource-preview-download","FlowPick v1.1.1: 안티 핫링크 리소스 미리보기와 다운로드"," 를 보세요.",[139,497,499],{"id":498},"_404-not-found-url-만료-또는-잘못-집음","404 Not Found: URL 만료 또는 잘못 집음",[15,501,502],{},"직접 링크에서 가장 짜증나는 게 \"어제는 됐는데 오늘 404\"입니다. 흔한 원인 세 가지.",[354,504,505,511,517],{},[162,506,507,510],{},[24,508,509],{},"임시 서명 URL 만료",": 클라우드 스토리지(OSS, COS 등)의 직접 링크는 유효 기간이 있어 몇 분에서 몇 시간이면 끝납니다.",[162,512,513,516],{},[24,514,515],{},"파일 정리됨",": 올린 사람이 지웠거나 CDN 캐시가 비워짐.",[162,518,519,522],{},[24,520,521],{},"URL 잘못 복사",": 복사한 게 플레이어 화면 URL이지 파일 직접 링크가 아님.",[15,524,525,526,529],{},"URL이 정말 죽었다면 방법이 없습니다. ",[24,527,528],{},"원래 동영상 페이지로 돌아가 다시 탐지","해서 새 직접 링크를 얻어 다시 받으세요.",[139,531,533],{"id":532},"cors-오류-온라인-도구-특유의-함정","CORS 오류: 온라인 도구 특유의 함정",[15,535,536,539,540,543,544,546,547,553],{},[24,537,538],{},"온라인 도구","로 다운로드하다 CORS 오류가 나면, 조작 실수가 아니라 도구의 한계입니다. 온라인 도구는 ",[19,541,542],{},"flowpick.com"," 도메인에서 돌기 때문에 브라우저의 동일 출처 정책이 교차 출처 읽기를 막습니다. ",[24,545,487],{}," 확장 프로그램은 독립 권한을 가져 동일 출처 정책 제약을 받지 않으므로 탐지 범위와 성공률 모두 한 단계 위입니다. 자세한 내용은 ",[24,548,549],{},[105,550,552],{"href":551},"\u002Fko\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#%ED%99%95%EC%9E%A5%EA%B3%BC-%EC%98%A8%EB%9D%BC%EC%9D%B8-%EB%8F%84%EA%B5%AC%EC%9D%98-%EA%B0%90%EC%A7%80-%EC%B0%A8%EC%9D%B4","동영상 탐지 — 확장과 온라인 도구의 감지 차이"," 를 참고하세요.",[139,555,557],{"id":556},"파일-불완전-서버가-이어받기-미지원","파일 불완전: 서버가 이어받기 미지원",[15,559,560,561,564],{},"다운로드는 시작되는데 일시정지하면 0부터 다시 하고, 중간에 실패하기도 합니다. 이건 서버가 ",[24,562,563],{},"HTTP Range","를 지원하는지에 달려 있습니다. Range를 쓰면 클라이언트가 파일 일부만 요청할 수 있고, 이어받기(断点续传)는 전부 여기에 의존합니다.",[15,566,567],{},"서버가 지원하는지 확인해 봅니다.",[195,569,571],{"className":197,"code":570,"language":199,"meta":200,"style":200},"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,572,573,593,606,614,619],{"__ignoreMap":200},[204,574,575,577,579,581,583,585,587,589,591],{"class":206,"line":207},[204,576,211],{"class":210},[204,578,398],{"class":214},[204,580,401],{"class":214},[204,582,404],{"class":214},[204,584,407],{"class":214},[204,586,219],{"class":218},[204,588,412],{"class":214},[204,590,225],{"class":218},[204,592,456],{"class":455},[204,594,595,597,599,602,604],{"class":206,"line":260},[204,596,462],{"class":214},[204,598,219],{"class":218},[204,600,601],{"class":214},"Range: bytes=0-1023",[204,603,225],{"class":218},[204,605,456],{"class":455},[204,607,608,610,612],{"class":206,"line":269},[204,609,477],{"class":218},[204,611,222],{"class":214},[204,613,421],{"class":218},[204,615,616],{"class":206,"line":430},[204,617,618],{"class":390},"# 206 = Range 지원, 이어받기 가능\n",[204,620,621],{"class":206,"line":436},[204,622,623],{"class":390},"# 200 = 전체 파일 반환, 미지원\n",[15,625,626,629,630,633],{},[19,627,628],{},"206","이면 문제없습니다. ",[19,631,632],{},"200","(전체)이 돌아오면 Range 미지원이니 중간에 일시정지하지 말고 한 번에 받으세요. 서버 쪽 능력 문제라 도구를 바꿔도 달라지지 않습니다.",[29,635,637],{"id":636},"받았는데-재생이-안-될-때","받았는데 재생이 안 될 때",[15,639,640,641,644,645,648,649,651],{},"파일은 받았다, 용량도 정상인데 플레이어가 \"형식 미지원\"이라거나 검은 화면이 나옵니다. 여기서 ",[24,642,643],{},"컨테이너","와 ",[24,646,647],{},"코덱","을 구분해서 생각해야 합니다. ",[19,650,21],{},"는 컨테이너이고, 안에는 H.264일 수도 있고 H.265\u002FHEVC나 AV1일 수도 있습니다. 컨테이너 지원과 코덱 지원은 다릅니다. 플레이어는 안쪽 코덱 레이어를 디코딩할 수 있어야 재생됩니다.",[15,653,654,655,661,662,293],{},"코덱 미지원이면 ",[24,656,657],{},[105,658,660],{"href":659},"\u002Fko\u002Fdocs\u002Ffeatures\u002Fformat-conversion","형식 변환"," 으로 호환성이 좋은 H.264 MP4로 바꾸면 됩니다. 내 브라우저가 뭘 재생할 수 있는지는 ",[24,663,664],{},[105,665,667],{"href":666},"\u002Fko\u002Fdocs\u002Fadvanced\u002Fbrowser-compatibility","브라우저 호환성",[15,669,670,671,674,675,331],{},"수백 MB 대용량 파일이 다운로드 중간에 멈추는 건 브라우저가 파일을 메모리에 임시 저장하기 때문입니다. FlowPick은 File System Access API를 우선 사용하고(저장 폴더를 고르면 스트리밍으로 디스크에 써서 메모리를 안 먹음), 지원하지 않으면 Blob 모드로 대체합니다. 대용량 파일이 막히는 게 그 이유입니다. 대책은 간단합니다. ",[24,672,673],{},"기본 다운로드 대신 \"저장 폴더 선택\"을 우선","으로. 그것도 안 되면 저화질 버전을 받으세요. Blob 모드의 하드 제한은 ",[24,676,677],{},[105,678,680],{"href":679},"\u002Fko\u002Fdocs\u002Ftroubleshooting\u002Fknown-issues#blob-%EB%AA%A8%EB%93%9C-%EA%B0%95%EB%A0%A5%ED%95%9C-%EC%A0%9C%ED%95%9C","알려진 제한",[29,682,684],{"id":683},"직접-링크와-m3u8mpd-구분이-안-될-때","직접 링크와 M3U8·MPD 구분이 안 될 때",[15,686,687,688,97,690,692],{},"URL 확장자가 ",[19,689,96],{},[19,691,100],{},"면 그건 직접 링크가 아니라 스트리밍 매니페스트입니다. 억지로 받지 마세요.",[354,694,695,712],{},[162,696,697,699,700,706,707],{},[19,698,96],{}," → ",[24,701,702],{},[105,703,705],{"href":704},"\u002Fko\u002Fm3u8-downloader","M3U8 다운로더"," 또는 ",[24,708,709],{},[105,710,711],{"href":107},"HLS 입문 가이드",[162,713,714,699,716,706,722],{},[19,715,100],{},[24,717,718],{},[105,719,721],{"href":720},"\u002Fko\u002Fdash-downloader","DASH 다운로더",[24,723,724],{},[105,725,726],{"href":114},"DASH 동영상 다운로드 튜토리얼",[29,728,729],{"id":729},"정리",[15,731,732,733,735,736,740],{},"직접 링크 다운로드는 4단계입니다. 동영상이 실제로 재생되는 페이지 찾기 → Network나 FlowPick에서 ",[19,734,135],{}," URL 파내기 → curl로 잘못 집지 않았는지 검증하기 → 받은 뒤 재생 확인하고 넘어가기. 403이면 확장 프로그램으로, 404면 다시 탐지, CORS면 온라인 도구 쓰지 말기, 파일 불완전이면 먼저 Range 확인. 그래도 남는 난제는 ",[105,737,739],{"href":738},"\u002Fko\u002Fdocs\u002Ftroubleshooting\u002Fdirect-video-download","동영상 직접 링크 다운로드 실패? MP4·WebM 문제 해결"," 에 증상별 전체 체크리스트가 나와 있습니다. 저장할 권리가 있는 동영상만 다운로드하세요.",[742,743],"hr",{},[29,745,747],{"id":746},"관련-글","관련 글",[354,749,750,757,764,771,780],{},[162,751,752,756],{},[24,753,754],{},[105,755,739],{"href":738}," —— 이 글의 완전한 문제 해결판, curl 진단 포함",[162,758,759,763],{},[24,760,761],{},[105,762,108],{"href":107}," —— 직접 링크의 바로 옆 이웃, 분할 스트리밍 입문",[162,765,766,770],{},[24,767,768],{},[105,769,115],{"href":114}," —— 오디오가 분리된 MPD 스트리밍 받는 법",[162,772,773,779],{},[24,774,775],{},[105,776,778],{"href":777},"\u002Fko\u002Fdocs\u002Ffeatures\u002Fvideo-sniffing#%EC%A7%81%EC%A0%91-%EB%B9%84%EB%94%94%EC%98%A4-%ED%8C%8C%EC%9D%BC","동영상 탐지 — 직접 비디오 파일"," —— 직접 링크 탐지 원리와 지원 범위",[162,781,782,788],{},[24,783,784],{},[105,785,787],{"href":786},"\u002Fko\u002Fblog\u002Fhow-flowpick-merges-video-segments-in-browser","FlowPick이 브라우저 안에서 수백 개 동영상 세그먼트를 MP4로 합치는 원리"," —— 분할 스트리밍 병합의 내부 동작",[29,790,792],{"id":791},"추천-글","추천 글",[354,794,795,804,813,822],{},[162,796,797,803],{},[24,798,799],{},[105,800,802],{"href":801},"\u002Fko\u002Fblog\u002Fhow-to-download-bilibili-videos","Bilibili 동영상을 오프라인 시청용으로 다운로드하는 방법(2026 최신)"," —— 한 사이트에 직접 링크·DASH·HLS가 전부 있다",[162,805,806,812],{},[24,807,808],{},[105,809,811],{"href":810},"\u002Fko\u002Fblog\u002Fflowpick-vs-yt-dlp","FlowPick vs. yt-dlp"," —— 브라우저에서 몇 번 클릭 vs 터미널에서 반나절",[162,814,815,821],{},[24,816,817],{},[105,818,820],{"href":819},"\u002Fko\u002Fblog\u002Fbatch-download-images-from-any-website","웹사이트에서 이미지 일괄 다운로드하는 방법"," —— 동영상만이 아니다, 이미지도 한 번에",[162,823,824,830],{},[24,825,826],{},[105,827,829],{"href":828},"\u002Fko\u002Fblog\u002Fis-it-legal-to-download-streaming-video","스트리밍 동영상 다운로드는 불법일까?"," —— 시작하기 전에 확인할 빨간 선",[832,833,834],"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":200,"searchDepth":260,"depth":260,"links":836},[837,838,842,843,849,850,851,852,853],{"id":31,"depth":260,"text":32},{"id":119,"depth":260,"text":120,"children":839},[840,841],{"id":141,"depth":269,"text":142},{"id":189,"depth":269,"text":190},{"id":296,"depth":260,"text":297},{"id":344,"depth":260,"text":345,"children":844},[845,846,847,848],{"id":348,"depth":269,"text":349},{"id":498,"depth":269,"text":499},{"id":532,"depth":269,"text":533},{"id":556,"depth":269,"text":557},{"id":636,"depth":260,"text":637},{"id":683,"depth":260,"text":684},{"id":729,"depth":260,"text":729},{"id":746,"depth":260,"text":747},{"id":791,"depth":260,"text":792},"tutorials","2026-08-18","MP4·WebM 직접 링크를 찾아 FlowPick으로 한 번에 저장하고, 403·404·CORS·파일 불완전 문제를 하나씩 해결합니다.","md",null,{},"\u002Fko\u002Fblog\u002Fhow-to-download-direct-mp4-video",9,{"title":5,"description":856},"ko\u002Fblog\u002Fhow-to-download-direct-mp4-video",[865,866,867,50,868],"동영상 다운로드","MP4","WebM","튜토리얼","eSh-vVRR4_Sp4hhg1p8JfB99851LEBFyA3EHQibNTCs",[871,875],{"title":872,"path":114,"stem":873,"description":874,"date":855,"category":854,"children":-1},"소리와 함께 DASH 동영상 다운로드하는 방법","ko\u002Fblog\u002Fhow-to-download-dash-video-with-audio","DASH 동영상을 다운로드했는데 소리가 없다면? MPD에서 영상과 오디오가 어느 트랙인지 구분하고, video-only를 선택하지 말고, FlowPick으로 소리 있는 MP4로 병합하는 방법을 설명합니다.",{"title":876,"path":877,"stem":878,"description":879,"date":880,"category":854,"children":-1},"TikTok 및 Twitter\u002FX 동영상을 컴퓨터에 다운로드하는 방법 (2026 가이드)","\u002Fko\u002Fblog\u002Fhow-to-download-tiktok-twitter-videos","ko\u002Fblog\u002Fhow-to-download-tiktok-twitter-videos","FlowPick을 사용하여 TikTok과 Twitter\u002FX의 짧은 동영상을 MP4 파일로 다운로드하는 단계별 가이드입니다. 워터마크 제거 도구도, 클라이언트 소프트웨어도 필요 없습니다 — 브라우저가 이미 로드한 동영상 스트림을 그대로 캡처합니다.","2026-08-03",1787670592392]