一:blob下载问题的详细描述
我想用
src url blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386
下载视频,但是不知道应该怎么做。
有没有下载这类视频的通用方法?
☼+:;;;;:+☼+:;;;;:+☼+:;;;;:+☼+:;;;;:+☼+:;;;;:+☼+:;;;;:+
二: 推荐的解决方法:
我在Vimeo
中找到了一个使用blob url
下载视频的方法(读了这篇文章,我才知道做法)。我正在使用Google Chrome,具体步骤如下:
- 打开
More Tools
(更多工具)→Developer Tools
(开发工具)- 检查视频标签中是否有这样的东西:
`<video preload="" src="blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"></video>``- 复制iframe标签的src(如果有的话)值,如
http://player.vimeo.com/video/XYZ
,如果你发现它可以复制,直接跳到第7点,否则按照步骤4,5,6继续操作。- 现在在页面中找到这个字符串
https://skyfire.vimeocdn.com/.../master.json?base64_init=1
(使用开发视图(Developer View)),应该可以在javascript函数中找到它,像这样:(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":"
- 复制上面的url字段中的链接到一个新的Chrome选项卡,例如
https://48skyfiregce-a.akamaihd.net/.../master.json?base64_init=1
,然后使用浏览器打开它,它会打开一个像这样的json文件:{"clip_id": XYZ,"base_url": "../","video": [{ ... ... ...
- 现在用id XYZ组合构造一个URL,如下所示:
https://player.vimeo.com/video/XYZ
- 用最终的URL替换视频标签内的
blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
(在上一步#6中创建的)。- 现在可以发现,魔术般地,视频标签内的src字段已更改(如果没有,请尝试第7步多次)...
<video preload="none" src="https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg"></video>
☼+:;;;;:+☼+:;;;;:+☼+:;;;;:+☼+:;;;;:+☼+:;;;;:+☼+:;;;;:+
三:其他的解决思路:
这个答案是针对Twitter网址的
- 右键点击视频,然后点击检查元素,你会发现这样的代码:
<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">
复制上面的代码,并粘贴到记事本++(Notepad++)中,然后用"替换所有的"
,用/
替换所有和\/
。 (使用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视频,而是转换为新的HLS,自适应流格式,带有.m3u8文件扩展名。
.m3u8文件基本上只是一个文本文的封装,它们非常小(300-500字节)。当您使用文本编辑器打开它们时,它们包含指向不同视频大小的链接
- 在记事本++(Notepad++)中打开文件m3u8,它会包含这样的代码:
EXTM3U EXT-X-INDEPENDENT-SEGMENTS 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/360x640/-Phfjbbx2yinirLi.m3u8
- 根据您需要的分辨率从上面复制对应的链接。重复相同的步骤,直到有
.ts
文件。下载.ts
文件(视频文件)。