Tôi đang cố tải xuống video với url src blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386
.
Có một quy trình có thể được theo dõi để tải xuống tất cả các loại video này?
Tôi đang cố tải xuống video với url src blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386
.
Có một quy trình có thể được theo dõi để tải xuống tất cả các loại video này?
Câu trả lời:
Tôi tìm thấy một cách để tải video với blob url
trong Vimeo
(đọc ở đây tôi hiểu cách làm việc đó). Tôi viết các bước đơn giản ở đây. Tôi đang sử dụng Google Chrome:
More Tools
→Developer Tools
Kiểm tra xem trong thẻ video có cái gì đó như thế này không:
<video preload="" src="blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"></video>
http://player.vimeo.com/video/XYZ
nếu bạn tìm thấy nó, bạn có thể đi thẳng đến điểm 7, nếu không, hãy làm theo các bước 4, 5, 6.Bây giờ hãy tìm chuỗi này https://skyfire.vimeocdn.com/.../master.json?base64_init=1
bên trong trang (sử dụng Chế độ xem dành cho nhà phát triển), bạn sẽ tìm thấy chuỗi bên trong một hàm javascript, như thế này:
(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":"
Sao chép liên kết bên trong trường url trên tab Chrome mới, ví dụ: https://48skyfiregce-a.akamaihd.net/.../master.json?base64_init=1
kết thúc mở nó bằng trình duyệt, nó sẽ mở cho bạn một tệp json như thế này:
{
"clip_id": XYZ,
"base_url": "../",
"video": [
{ ... ... ...
Bây giờ soạn một url với id của bạn XYZ
như thế này:https://player.vimeo.com/video/XYZ
blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
bên trong thẻ video bằng url cuối cùng đó (cái được tạo ở bước trước # 6).Bây giờ bạn sẽ nhận thấy rằng trường src bên trong thẻ video đã thay đổi (nếu không, hãy thử bước 7 nhiều lần) ...
<video preload="none" src="https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg"></video>
Sử dụng liên kết mới đó để tải xuống trực tiếp, đó là một cái gì đó như sau: https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?
<video>
thẻ trong cấu trúc dev của công cụ dev và thay đổi src
thuộc tính từ blob:...
sang x
. Sẽ không có gì xảy ra - điều này là ok. Bây giờ thay đổi nó một lần nữa, để y
. Chrome sẽ chuyển đổi 'kỳ diệu' thành URL như trong bước 8 hoặc 9 .:-)
Câu trả lời này dành cho các URL Twitter -
Bạn sẽ tìm thấy một mã như thế này
<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.Copy Dán mã trên vào notepad ++. Thay thế tất cả "
bằng "
và \/
wth /
trong notepad ++. (Sử dụng CTRL + H)
Bạn sẽ nhận được một cái gì đó như
{
"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"
}
Từ định dạng JSON ở trên, hãy xem giá trị video_url
https://video.twimg.com/ext_tw_video/844504104512749568/pu/pl/e91Du5N2TZ09ZaW_.m3u8
Vấn đề ở đây là, sau ngày 1 tháng 8 năm 2016, Twitter không còn sử dụng video .mp4 nữa mà chuyển đổi sang định dạng phát trực tiếp thích ứng mới, với phần mở rộng tệp .m3u8 .
Các tệp .m3u8 về cơ bản chỉ là một trình bao bọc tệp văn bản, chúng rất nhỏ (300-500 byte) và khi bạn mở chúng bằng trình chỉnh sửa văn bản, chúng chứa các liên kết đến các kích thước video khác nhau
EXTM3U EXT-X-INDEPENDENT-SEGITT EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 256000, GIẢI QUYẾT = 180x320, CODECS = "mp4a.40.2, avc1.42001f" / 8 180x320 / _Z42SY5zwMlLdFYx.m3u8 EXT-X-STREAM-INF: CHƯƠNG TRÌNH-ID = 1, BĂNG THÔNG = 832.000, GIẢI = 360x640, codec = "mp4a.40.2, avc1.42001f" / ext_tw_video / 844504104512749568 / pu / pl / 360x640 / - Phfjbbx2yinirLi.m3u8
<div id="playerContainer"
id="playerContainer"
phần tử tìm og:video:url
và mở url trong nội dung và kiểm tra nguồn của phần đó.
document.querySelector('video').src
trong tab bảng điều khiển công cụ phát triển trình duyệt của bạn.
<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>
Tôi cũng đã có blob:
URL video/@src
, nhưng bằng cách xem Developer tools
> Network
trong khi phát lại, hóa ra đó video/source/@src
là URL cho m3u8
danh sách phát.
Có m3u8
thể dễ dàng tải xuống một video được quay lại bằng cách:
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 - URL blob nghe có vẻ như nhị phân bạn muốn nhận nhưng có thể có cách dễ dàng hơn để lấy video. Chỉ cần xem tab Mạng trong các công cụ Dev trong khi bạn phát video để xem những gì bạn đang thực sự tìm nạp.
-i <URL> -i <URL> -i <URL>
để hợp nhất tất cả video, âm thanh và phụ đề thành một đầu ra :)
m3u8
metalist (tức là tệp m3u8 giới thiệu các tệp m3u8 khác) và ffmpeg sẽ tải xuống và hợp nhất nó một cách chính xác, vì vậy bạn không cần chỉ định thủ công nhiều đầu vào -i
.
Tôi tìm thấy một cách khác để tải về một video với blob url
trong Vimeo
(xem câu trả lời khác trong trang này).
Giải pháp này chỉ phù hợp nếu bạn chỉ muốn video không có âm thanh!
Vì vậy, nếu bạn muốn tải xuống chỉ một video Vimeo (thường không có âm thanh), tôi có thể xác nhận rằng tiện ích mở rộng Google Chrome này hoạt động thực sự tốt: Flash Video Downloader .