스트리밍 비디오를 다운로드하고 싶습니다. mp4 비디오 링크 대신 Chrome DevTools -> 네트워크로 이동하면 오디오 ...hd4b.mp4/fragment-1-v1.m4s
와 같은 많은 링크를 찾을 수 있습니다. ...a1.m4s
이니셜 ...hd4b.mp4/init-v1.mp4
과 ...init-a1.mp4
. 수동으로 복사하기에는 조각이 너무 많습니다.
따라서 원하는 .mp4 파일에 대한 모든 .m4s 조각 링크를 필터링하는 방법을 알아야 합니다. 이 있습니다여기에 대답하세요그러면 네트워크의 모든 링크가 제공되고 이를 실행한 후 링크를 파일에 붙여넣을 수 있지만 원하는 .mp4의 일부가 아닌 링크도 얻게 됩니다. 실제로는 중요하지 않지만 에 대한 링크만 가져오는 것이 좋을 것입니다 ...hd4b.mp4
.
한 파일에는 비디오 링크를, 다른 파일에는 오디오 링크를 얻으려면 어떻게 해야 합니까?
링크 를 어떻게 해야 하나요 init
? 목록에 추가하시겠습니까?
지금 생각해보면 링크를 얻는 방법은 영상 끝까지 가서 마지막 숫자를 가져와서 그 숫자를 1에서 마지막까지 수정하는 링크를 생성하는 것이 아닐까 싶습니다. 링크를 어떻게 생성합니까?답변.
그리고 링크가 있으면여기 길이 있어요다운로드하려면 어떻게 해야 합니까? 비디오 부분을 병합하려면 어떻게 해야 합니까?
그리고 오디오와 비디오가 있을 때 최종 mp4에 어떻게 결합합니까?
답변1
유튜브-DL
최신 버전을 사용하여 비디오를 다운로드해 보세요. 단계를 따를 수 없는 경우.
먼저 링크를 받아보세요
Chrome에서 DevTools -> Networks로 이동하여 첫 번째와 마지막 조각 링크를 찾습니다. 링크가 순차적인 경우 다음과 같은 링크를 생성합니다.
seq -f "...hd4b.mp4/fragment-%g-v1.m4s" 10 > video-links.txt
1부터 10까지의 위치 %g
입니다. init 링크가 있는 경우 파일 시작 부분에 포함되어야 합니다 video-links.txt
.
링크가 순차 복사가 아닌 경우 다음과 같이 복사하세요.
- devtools를 분리된 창으로 전환합니다(devtools 설정 아이콘을 클릭하고 "도킹 사이드" 도킹 해제 아이콘을 클릭). 다음번에는 Ctrl- Shift- 를 누르기만 하면 됩니다 D.
- Ctrl- Shift-를 눌러 devtools-for-devtools를 호출합니다.i
- 이 코드를 실행하여 모든/필터링된 요청의 URL을 클립보드에 복사합니다.
copy(UI.panels.network._networkLogView._dataGrid._rootNode._flatNodes.map(n => n._request._url).join('\n'))
코드를 소스 패널에 코드 조각으로 저장하고 마우스 오른쪽 버튼을 클릭하거나 Ctrl-Enter를 눌러 실행할 수 있습니다.
var URLs = UI.panels.network._networkLogView._dataGrid._rootNode._flatNodes.map(n => n._request._url);
copy(URLs.join('\n'));
URLs; // displays it in the console as an expandable array
스크립트를 실행한 후 링크가 클립보드에 있으므로 파일에 붙여넣습니다.
비디오 및 오디오 다운로드
wget -i "video-links.txt" -O "video.mp4" -B "...hd4b.mp4/"
URL 기반과 함께 -B 옵션을 사용하십시오.
비디오와 동일한 단계에 따라 오디오를 다운로드하십시오.
비디오와 오디오 병합
ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4