src url으로 비디오를 다운로드하려고합니다 blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386
.
이 모든 유형의 비디오를 다운로드 할 수있는 프로세스가 있습니까?
src url으로 비디오를 다운로드하려고합니다 blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386
.
이 모든 유형의 비디오를 다운로드 할 수있는 프로세스가 있습니까?
답변:
에서 비디오를 다운로드하는 방법을 찾았 blob url
습니다 Vimeo
( 여기 에서 어떻게하는지 이해했습니다). 여기에 간단한 단계를 씁니다. Chrome을 사용하고 있습니다.
More Tools
→를Developer Tools
비디오 태그에 다음과 같은 것이 있는지 확인하십시오.
<video preload="" src="blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"></video>
http://player.vimeo.com/video/XYZ
7 포인트로 바로 이동할 수 있습니다. 그렇지 않으면 4, 5, 6 단계를 따르십시오.이제 https://skyfire.vimeocdn.com/.../master.json?base64_init=1
개발자 뷰를 사용하여 페이지 내 에서이 문자열 을 찾으면 다음과 같이 자바 스크립트 함수에서 찾을 수 있습니다.
(function(e,a){var t={"cdn_url":"https://f.vimeocdn.com","view":1,"request":{"files":{"dash":{"origin":"gcs","url":"https://48skyfiregce-a.akamaihd.net/.../master.json?base64_init=1","cdn":"
새 Chrome 탭의 url 필드 안에 링크를 복사하십시오. 예를 들어 https://48skyfiregce-a.akamaihd.net/.../master.json?base64_init=1
브라우저에서 링크를 열면 다음과 같이 json 파일이 열립니다.
{
"clip_id": XYZ,
"base_url": "../",
"video": [
{ ... ... ...
이제 다음과 같이 아이디로 URL을 작성 XYZ
하십시오.https://player.vimeo.com/video/XYZ
blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
동영상 태그 내부를 마지막 URL (이전 단계 # 6에서 생성 된 URL)로 교체하십시오 .이제 비디오 태그 내부의 src 필드가 마술처럼 변경되었음을 알 수 있습니다 (그렇지 않으면 7 단계를 여러 번 시도하십시오) ...
<video preload="none" src="https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg"></video>
새 링크를 사용하여 직접 다운로드하면 https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg
<video>
dev 도구 DOM 구조에서 태그를 찾은 다음 src
속성을에서 blob:...
로 변경하십시오 x
. 아무 일도 일어나지 않을 것입니다-괜찮습니다. 이제로 다시 변경하십시오 y
. Chrome은 8 단계 또는 9 단계와 같이 URL을 '
이 답변은 트위터 URL에 대한 것입니다-
이 같은 코드를 찾을 수 있습니다
<div id="playerContainer" class="player-container full-screen-enabled" data-config="{"is_360":false,"duration":28617,"scribe_widget_origin":true,"heartbeatEnabled":true,"video_url":"https:\/\/video.twimg.com\/ext_tw_video\/844504104512749568\/pu\/pl\/e91Du5N2TZ09ZaW_.m3u8","disable_embed":"0","videoInfo":{"title":null,"description":null,"publisher":{"screen_name":"MountainButorac","name":"Mountain Butorac","profile_image_url":"https:\/\/pbs.twimg.com\/profile_images\/808318456701521920\/vBvlAASx_normal.jpg"}},"cardUrl":"https:\/\/t.co\/SdSorop3uN","content_type":"application\/x-mpegURL","owner_id":"14120461","looping_enabled":true,"show_cookie_override_en":true,"visit_cta_url":null,"scribe_playlist_url":"https:\/\/twitter.com\/MountainButorac\/status\/844505243538931714\/video\/1","source_type":"consumer","image_src":"https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/844504104512749568\/pu\/img\/FFt3qkbeOh0RlGfZ.jpg","heartbeatIntervalInMs":5000.0,"use_tfw_live_heartbeat_event_category":true,"video_loading_timeout":45000.0,"status":{"created_at":"Wed Mar 22 11:05:14 +0000 2017","id":844505243538931714,"id_str":"844505243538931714","text":"Took my Goddaughter to meet the pope. She stole his hat! https:\/\/t.co\/SdSorop3uN","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[],"media":[{"id":844504104512749568,"id_str":"844504104512749568","indices":[57,80],"media_url":"http:\/\/pbs.twimg.com\/ext_tw_video_thumb\/844504104512749568\/pu\/img\/FFt3qkbeOh0RlGfZ.jpg","media_url_https":"https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/844504104512749568\/pu\/img\/FFt3qkbeOh0RlGfZ.jpg","url":"https:\/\/t.co\/SdSorop3uN","display_url":"pic.twitter.com\/SdSorop3uN","expanded_url":"https:\/\/twitter.com\/MountainButorac\/status\/844505243538931714\/video\/1","type":"photo","sizes":{"small":{"w":340,"h":604,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"large":{"w":576,"h":1024,"resize":"fit"},"medium":{"w":576,"h":1024,"resize":"fit"}}}]},"source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},"show_cookie_override_all":true,"video_session_enabled":false,"media_id":"844504104512749568","view_counts":null,"statusTimestamp":{"local":"4:05 AM - 22 Mar 2017"},"media_type":1,"user":{"screen_name":"MountainButorac","name":"Mountain Butorac","profile_image_url":"https:\/\/pbs.twimg.com\/profile_images\/808318456701521920\/vBvlAASx_bigger.jpg"},"watch_now_cta_url":null,"tweet_id":"844505243538931714"}" data-source-type="consumer">
2. 위 코드를 메모장 ++에 붙여 넣습니다. 모두 바꾸기 "
로 "
하고 \/
WTH /
++ 메모장. (Ctrl + H 사용)
당신은 같은 것을 얻을 것이다
{
"is_360": false,
"duration": 28617,
"scribe_widget_origin": true,
"heartbeatEnabled": true,
"video_url": "https://video.twimg.com/ext_tw_video/844504104512749568/pu/pl/e91Du5N2TZ09ZaW_.m3u8",
"disable_embed": "0",
"videoInfo": {
"title": null,
"description": null,
"publisher": {
"screen_name": "MountainButorac",
"name": "Mountain Butorac",
"profile_image_url": "https://pbs.twimg.com/profile_images/808318456701521920/vBvlAASx_normal.jpg"
}
},
"cardUrl": "https://t.co/SdSorop3uN",
"content_type": "application/x-mpegURL",
"owner_id": "14120461",
"looping_enabled": true,
"show_cookie_override_en": true,
"visit_cta_url": null,
"scribe_playlist_url": "https://twitter.com/MountainButorac/status/844505243538931714/video/1",
"source_type": "consumer",
"image_src": "https://pbs.twimg.com/ext_tw_video_thumb/844504104512749568/pu/img/FFt3qkbeOh0RlGfZ.jpg",
"heartbeatIntervalInMs": 5000.0,
"use_tfw_live_heartbeat_event_category": true,
"video_loading_timeout": 45000.0,
"status": {
"created_at": "Wed Mar 22 11:05:14 +0000 2017",
"id": 844505243538931714,
"id_str": "844505243538931714",
"text": "Took my Goddaughter to meet the pope. She stole his hat! https://t.co/SdSorop3uN",
"truncated": false,
"entities": {
"hashtags": [],
"symbols": [],
"user_mentions": [],
"urls": [],
"media": [{
"id": 844504104512749568,
"id_str": "844504104512749568",
"indices": [57, 80],
"media_url": "http://pbs.twimg.com/ext_tw_video_thumb/844504104512749568/pu/img/FFt3qkbeOh0RlGfZ.jpg",
"media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/844504104512749568/pu/img/FFt3qkbeOh0RlGfZ.jpg",
"url": "https://t.co/SdSorop3uN",
"display_url": "pic.twitter.com/SdSorop3uN",
"expanded_url": "https://twitter.com/MountainButorac/status/844505243538931714/video/1",
"type": "photo",
"sizes": {
"small": {
"w": 340,
"h": 604,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"large": {
"w": 576,
"h": 1024,
"resize": "fit"
},
"medium": {
"w": 576,
"h": 1024,
"resize": "fit"
}
}
}]
},
"source": "\u003ca href=\"http://twitter.com/download/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c/a\u003e",
"in_reply_to_status_id": null,
"in_reply_to_status_id_str": null,
"in_reply_to_user_id": null,
"in_reply_to_user_id_str": null,
"in_reply_to_screen_name": null,
"geo": null,
"coordinates": null,
"place": null,
"contributors": null,
"retweet_count": 0,
"favorite_count": 0,
"favorited": false,
"retweeted": false,
"possibly_sensitive": false,
"lang": "en"
},
"show_cookie_override_all": true,
"video_session_enabled": false,
"media_id": "844504104512749568",
"view_counts": null,
"statusTimestamp": {
"local": "4:05 AM - 22 Mar 2017"
},
"media_type": 1,
"user": {
"screen_name": "MountainButorac",
"name": "Mountain Butorac",
"profile_image_url": "https://pbs.twimg.com/profile_images/808318456701521920/vBvlAASx_bigger.jpg"
},
"watch_now_cta_url": null,
"tweet_id": "844505243538931714"
}
위의 JSON 형식에서 video_url 값을 참조하십시오.
https://video.twimg.com/ext_tw_video/844504104512749568/pu/pl/e91Du5N2TZ09ZaW_.m3u8
여기서 문제는 2016 년 8 월 1 일 이후 Twitter가 더 이상 .mp4 비디오를 사용하지 않고 파일 확장자 가 .m3u8 인 새로운 HLS 적응 스트리밍 형식으로 변환하는 것 입니다.
.m3u8 파일은 기본적으로 텍스트 파일 포장지이며 매우 작으며 (300-500 바이트) 텍스트 편집기로 파일을 열면 서로 다른 비디오 크기에 대한 링크가 포함됩니다
EXTM3U EXT-X 독립적 인 구문 EXT-X-STREAM-INF : PROGRAM-ID = 1, BANDWIDTH = 256000, RESOLUTION = 180x320, CODECS = "mp4a.40.2, avc1.42001f" / ext_tw_video / 844504104512749568 / pu / pl / 180x320 / _Z42SY5zwMlLdFYx.m3u8 EXT-X-STREAM-INF : PROGRAM-ID = 1, BANDWIDTH = 832000, RESOLUTION = 360x640, CODECS = "mp4a.40.2, avc1.42001f" / ext_tw_video / 844504104512749568 / pu / pl / 360 / Phfjbbx2yinirLi.m3u8
<div id="playerContainer"
id="playerContainer"
요소를 찾을 수 없으면 og:video:url
컨텐츠에서 URL 을 찾아서 열고 해당 소스를 검사하십시오.
document.querySelector('video').src
브라우저 개발자 도구 콘솔 탭에서 실행 하는 것입니다.
<video src="blob:https://www.example.tv/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
<source src="https://cdn.example.tv/api/media/tv/xyzxyz/index" type="application/x-mpegurl">
</video>
또한에 blob:
URL이 video/@src
있었지만 재생 중에 Developer tools
> 를 보면서 Network
재생 목록의 video/source/@src
URL 인 것으로 나타났습니다 m3u8
.
m3u8
-backed 비디오는 쉽게 중 하나를 다운로드 할 수 있습니다 :
ffplay -i "https://cdn.example.tv/api/media/tv/xyzxyz/1080/index.m3u8"
ffmpeg -i "https://cdn.example.tv/api/media/tv/xyzxyz/1080/index.m3u8" -codec copy file.mkv
tl; dr-BLOB URL은 원하는 바이너리처럼 들리지만 비디오를 얻는 더 쉬운 방법이있을 수 있습니다. 비디오를 재생하는 동안 개발자 도구에서 네트워크 탭을 확인하면 실제로 가져 오는 내용을 볼 수 있습니다.
-i <URL> -i <URL> -i <URL>
비디오, 오디오 및 자막을 모두 하나의 출력으로 병합하기 위해 여러 종류의 스트림 입력을 제공 할 수 있습니다.)
m3u8
metalist (예 : 다른 m3u8 파일을 참조하는 m3u8 파일)를 찾을 수 있으며 ffmpeg가 해당 파일을 제대로 다운로드하여 병합하므로 여러 입력을 수동으로 지정할 필요가 없습니다 -i
.
에서 비디오를 다운로드하는 다른 방법을 찾았 blob url
습니다 Vimeo
( 이 페이지 의 다른 답변 참조).
이 솔루션은 소리가없는 비디오 만 원하는 경우에만 적합합니다!
따라서 Vimeo 비디오 (사운드 없음) 만 다운로드하려는 경우이 Chrome 확장 프로그램 ( Flash Video Downloader) 이 제대로 작동하는지 확인할 수 있습니다 .