วิธีการดาวน์โหลดวิดีโอด้วย blob url


94

blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386ฉันพยายามที่จะดาวน์โหลดวิดีโอที่มี URL src

มีกระบวนการที่สามารถติดตามเพื่อดาวน์โหลดวิดีโอประเภทนี้ทั้งหมดได้หรือไม่?


หากคุณต้องการดาวน์โหลดวิดีโอ youtube ให้ใช้ extenstions เช่น Video Downloadhelper (Firefox)
Ganesh R.

ฉันต้องการดาวน์โหลดจาก vimeo url
vinesh

Vinesh ลองไปที่เว็บไซต์ vimeo แล้วเริ่มเล่นวิดีโอที่คุณต้องการดาวน์โหลด วิดีโอ DownloadHelper จะตรวจจับและให้ตัวเลือกในการดาวน์โหลด ฉันลองแล้ว
Ganesh R.

ไม่มีโชค. เมื่อฉันเริ่มเล่นวิดีโอฉันเห็นคำแนะนำวิดีโอหลายรายการจากส่วนขยายที่คุณพูดถึงประมาณ 2 MB เมื่อฉันดาวน์โหลดชิ้นส่วนฉันไม่สามารถเล่นไฟล์ขนาดเล็กนั้นได้ ฉันได้รับข้อผิดพลาดว่าไฟล์เสียหาย
vinesh

ใส่ลิงค์ในความคิดเห็น
Ganesh R.

คำตอบ:


69

ฉันพบวิธีดาวน์โหลดวิดีโอด้วยblob urlในVimeo(อ่านที่นี่ฉันเข้าใจวิธีการทำ) ฉันเขียนขั้นตอนง่าย ๆ ที่นี่ ฉันใช้ Google Chrome:

  1. เปิดMore ToolsDeveloper Tools
  2. ตรวจสอบว่าในแท็กวิดีโอมีอะไรเช่นนี้หรือไม่:

    <video preload="" src="blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"></video>
    
  3. คัดลอก src ของแท็ก iframe ถ้ามีเช่นhttp://player.vimeo.com/video/XYZถ้าคุณพบคุณสามารถไปยังจุดที่ 7 หรือทำตามขั้นตอนที่ 4, 5, 6
  4. ตอนนี้มองหาสตริงนี้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":"
    
  5. คัดลอกลิงก์ภายในฟิลด์ url บนแท็บ Chrome ใหม่เช่นhttps://48skyfiregce-a.akamaihd.net/.../master.json?base64_init=1เปิดท้ายด้วยเบราว์เซอร์จะเปิดไฟล์ json ดังนี้:

    {
        "clip_id": XYZ,
        "base_url": "../",
        "video": [
                     { ... ... ...
    
  6. ตอนนี้เขียน URL ด้วยรหัสของคุณXYZเช่นนี้:https://player.vimeo.com/video/XYZ

  7. แทนที่blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXภายในแท็กวิดีโอด้วย URL สุดท้ายนั้น (URL ที่สร้างในขั้นตอนก่อนหน้า # 6)
  8. ตอนนี้คุณจะสังเกตเห็นว่าฟิลด์ src ด้านในของแท็กวิดีโอเปลี่ยนไปอย่างน่าอัศจรรย์ (หากไม่ลองขั้นตอนที่ 7 หลายครั้ง) ...

    <video preload="none" src="https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg"></video>
    
  9. ใช้ลิงก์ใหม่นั้นเพื่อดาวน์โหลดโดยตรงมันเป็นแบบนี้: https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


7
ประทับใจ คุณคิดออกได้ยังไง
gronostaj

1
ในขั้นตอนที่ 7 คุณหมายถึงอะไรกับ "URL สุดท้ายที่อยู่ภายใน html"
joaorodr84

6
ทำงานได้อย่างสมบูรณ์ แต่เคล็ดลับบางครั้งคุณต้องแทนที่ค่า "src" หลาย ๆ ครั้งเพื่อสร้างลิงค์ดาวน์โหลด
Ashrith

19
ปัจจุบันสำหรับ Vimeo มันง่ายกว่ามากและไม่ต้องการขั้นตอนทั้งหมด เพียงแค่เปิดวิดีโอ Vimeo หา<video>แท็กในโครงสร้างเครื่องมือ dev DOM และเปลี่ยนsrcแอตทริบิวต์จากไปblob:... xจะไม่มีอะไรเกิดขึ้น - ไม่เป็นไร yตอนนี้เปลี่ยนอีกครั้งเพื่อ Chrome จะแปลงเป็น 'อย่างน่าอัศจรรย์' เป็น URL เช่นในขั้นตอนที่ 8 หรือ 9 :-)
StanE

3
@StanE มันทำงานเช่นเสน่ห์ใน Firefox เกินไปและแน่นอนได้เร็วขึ้น ...
หลิง

10

คำตอบนี้สำหรับ URL ของ Twitter -

  1. คลิกขวาที่วิดีโอและคลิกตรวจสอบองค์ประกอบ -

คุณจะพบรหัสเช่นนี้

<div id="playerContainer" class="player-container full-screen-enabled" data-config="{&quot;is_360&quot;:false,&quot;duration&quot;:28617,&quot;scribe_widget_origin&quot;:true,&quot;heartbeatEnabled&quot;:true,&quot;video_url&quot;:&quot;https:\/\/video.twimg.com\/ext_tw_video\/844504104512749568\/pu\/pl\/e91Du5N2TZ09ZaW_.m3u8&quot;,&quot;disable_embed&quot;:&quot;0&quot;,&quot;videoInfo&quot;:{&quot;title&quot;:null,&quot;description&quot;:null,&quot;publisher&quot;:{&quot;screen_name&quot;:&quot;MountainButorac&quot;,&quot;name&quot;:&quot;Mountain Butorac&quot;,&quot;profile_image_url&quot;:&quot;https:\/\/pbs.twimg.com\/profile_images\/808318456701521920\/vBvlAASx_normal.jpg&quot;}},&quot;cardUrl&quot;:&quot;https:\/\/t.co\/SdSorop3uN&quot;,&quot;content_type&quot;:&quot;application\/x-mpegURL&quot;,&quot;owner_id&quot;:&quot;14120461&quot;,&quot;looping_enabled&quot;:true,&quot;show_cookie_override_en&quot;:true,&quot;visit_cta_url&quot;:null,&quot;scribe_playlist_url&quot;:&quot;https:\/\/twitter.com\/MountainButorac\/status\/844505243538931714\/video\/1&quot;,&quot;source_type&quot;:&quot;consumer&quot;,&quot;image_src&quot;:&quot;https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/844504104512749568\/pu\/img\/FFt3qkbeOh0RlGfZ.jpg&quot;,&quot;heartbeatIntervalInMs&quot;:5000.0,&quot;use_tfw_live_heartbeat_event_category&quot;:true,&quot;video_loading_timeout&quot;:45000.0,&quot;status&quot;:{&quot;created_at&quot;:&quot;Wed Mar 22 11:05:14 +0000 2017&quot;,&quot;id&quot;:844505243538931714,&quot;id_str&quot;:&quot;844505243538931714&quot;,&quot;text&quot;:&quot;Took my Goddaughter to meet the pope. She stole his hat! https:\/\/t.co\/SdSorop3uN&quot;,&quot;truncated&quot;:false,&quot;entities&quot;:{&quot;hashtags&quot;:[],&quot;symbols&quot;:[],&quot;user_mentions&quot;:[],&quot;urls&quot;:[],&quot;media&quot;:[{&quot;id&quot;:844504104512749568,&quot;id_str&quot;:&quot;844504104512749568&quot;,&quot;indices&quot;:[57,80],&quot;media_url&quot;:&quot;http:\/\/pbs.twimg.com\/ext_tw_video_thumb\/844504104512749568\/pu\/img\/FFt3qkbeOh0RlGfZ.jpg&quot;,&quot;media_url_https&quot;:&quot;https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/844504104512749568\/pu\/img\/FFt3qkbeOh0RlGfZ.jpg&quot;,&quot;url&quot;:&quot;https:\/\/t.co\/SdSorop3uN&quot;,&quot;display_url&quot;:&quot;pic.twitter.com\/SdSorop3uN&quot;,&quot;expanded_url&quot;:&quot;https:\/\/twitter.com\/MountainButorac\/status\/844505243538931714\/video\/1&quot;,&quot;type&quot;:&quot;photo&quot;,&quot;sizes&quot;:{&quot;small&quot;:{&quot;w&quot;:340,&quot;h&quot;:604,&quot;resize&quot;:&quot;fit&quot;},&quot;thumb&quot;:{&quot;w&quot;:150,&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;},&quot;large&quot;:{&quot;w&quot;:576,&quot;h&quot;:1024,&quot;resize&quot;:&quot;fit&quot;},&quot;medium&quot;:{&quot;w&quot;:576,&quot;h&quot;:1024,&quot;resize&quot;:&quot;fit&quot;}}}]},&quot;source&quot;:&quot;\u003ca href=\&quot;http:\/\/twitter.com\/download\/iphone\&quot; rel=\&quot;nofollow\&quot;\u003eTwitter for iPhone\u003c\/a\u003e&quot;,&quot;in_reply_to_status_id&quot;:null,&quot;in_reply_to_status_id_str&quot;:null,&quot;in_reply_to_user_id&quot;:null,&quot;in_reply_to_user_id_str&quot;:null,&quot;in_reply_to_screen_name&quot;:null,&quot;geo&quot;:null,&quot;coordinates&quot;:null,&quot;place&quot;:null,&quot;contributors&quot;:null,&quot;retweet_count&quot;:0,&quot;favorite_count&quot;:0,&quot;favorited&quot;:false,&quot;retweeted&quot;:false,&quot;possibly_sensitive&quot;:false,&quot;lang&quot;:&quot;en&quot;},&quot;show_cookie_override_all&quot;:true,&quot;video_session_enabled&quot;:false,&quot;media_id&quot;:&quot;844504104512749568&quot;,&quot;view_counts&quot;:null,&quot;statusTimestamp&quot;:{&quot;local&quot;:&quot;4:05 AM - 22 Mar 2017&quot;},&quot;media_type&quot;:1,&quot;user&quot;:{&quot;screen_name&quot;:&quot;MountainButorac&quot;,&quot;name&quot;:&quot;Mountain Butorac&quot;,&quot;profile_image_url&quot;:&quot;https:\/\/pbs.twimg.com\/profile_images\/808318456701521920\/vBvlAASx_bigger.jpg&quot;},&quot;watch_now_cta_url&quot;:null,&quot;tweet_id&quot;:&quot;844505243538931714&quot;}" data-source-type="consumer">

2. คัดลอกโค้ดด้านบนใน notepad ++ แทนที่&quot;ด้วย with "และ\/wth /ใน 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

ปัญหาที่เกิดขึ้นคือหลังจากวันที่ 1 สิงหาคม 2016 Twitter ไม่ได้ใช้วิดีโอ. mp4 อีกต่อไป แต่แปลงเป็น HLS ใหม่ซึ่งเป็นรูปแบบการปรับสตรีมมิ่งแบบปรับได้พร้อมกับนามสกุลไฟล์. m3u8

ไฟล์. m3u8 นั้นเป็นเพียงเครื่องมือห่อหุ้มไฟล์ข้อความซึ่งมีขนาดเล็กมาก (300-500 ไบต์) และเมื่อคุณเปิดด้วยตัวแก้ไขข้อความจะมีลิงก์ไปยังขนาดวิดีโอต่างๆ

  1. เปิดไฟล์ m3u8 ใน notepad ++ ซึ่งจะมีรหัสดังนี้

EXTM3U EXT-X-SEGMENTS เอกสิทธิ์ EXT-X-STREAM-INF: โปรแกรม PROGRAM-ID = 1, BANDWIDTH = 256000, การแก้ไข = 180x320, CODECS = "mp4a.40.2, avc1.42001f" / ext_tw_video / 844444,445 / 497,568 ต่อ 1 180x320 / _Z42SY5zwMlLdFYx.m3u8 EXT-X-STREAM-INF: PROGRAM-ID / 360/8406404408/8404404 , 8284, AVC1.42001F " extf_twp / v4 / 8407/8406/8404404" Phfjbbx2yinirLi.m3u8

  1. คัดลอกลิงก์ตามลำดับจากด้านบนตามความต้องการของคุณ ทำซ้ำขั้นตอนเดียวกันจนกว่าคุณจะมีไฟล์. ts ดาวน์โหลดไฟล์. ts (ไฟล์วิดีโอ)

คุณหมายถึงอะไร "คุณจะได้อะไร" - จากที่ใด
ผู้ใช้

@ ผู้ใช้จากโค้ดด้านบนซึ่งเริ่มต้นเช่น<div id="playerContainer"
Pirate X

3
เฮ้ในขั้นตอนที่ 4 คุณหมายถึงอะไรโดย "คัดลอกลิงค์ตามลำดับ"? ไม่ใช่ URL ที่ถูกต้องและฉันไม่สามารถหาวิธีรับวิดีโอได้ แก้ไข: ตกลงถูกต้องฉันพบมัน คุณควรพูดถึงว่าคุณต้องใส่ " video.twimg.com " ไว้ข้างหน้าและเข้าถึง URL
Elzo

หากคุณไม่พบid="playerContainer"องค์ประกอบที่มองหาog:video:urlและเปิด URL ในเนื้อหาและตรวจสอบแหล่งที่มาของสิ่งนั้น
guillefix

อีกวิธีในการใช้งานบนTwitterคือการทำงานdocument.querySelector('video').srcในแท็บคอนโซลเครื่องมือสำหรับนักพัฒนาเบราว์เซอร์ของคุณ
Farzad YZ

8
<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 - URL blob ฟังดูเหมือนไบนารีที่คุณต้องการ แต่อาจจะมีวิธีที่ง่ายกว่าในการรับวิดีโอ เพียงตรวจสอบแท็บเครือข่ายในเครื่องมือ Dev ในขณะที่คุณเล่นวิดีโอเพื่อดูสิ่งที่คุณกำลังนำมาใช้จริง


1
ทำงานบนเครื่องของฉัน! และคุณสามารถจัดหาหลายชนิดของปัจจัยการผลิตกระแสด้วย-i <URL> -i <URL> -i <URL>การผสานวิดีโอ, เสียงและคำบรรยายทั้งหมดเป็นหนึ่งในการส่งออก :)
mcandre

@ mcandre ใช่นั่นเป็นเคล็ดลับที่ดี นอกจากนี้คุณยังอาจพบm3u8 Metalist (เช่น m3u8 ไฟล์หมายถึงไฟล์ m3u8 อื่น ๆ ) และ ffmpeg -iจะดาวน์โหลดและผสานได้อย่างถูกต้องดังนั้นคุณจึงไม่จำเป็นต้องระบุปัจจัยหลายตนเอง
Vlastimil Ovčáčík

0

ฉันพบวิธีอื่นในการดาวน์โหลดวิดีโอด้วยblob urlในVimeo(ดูคำตอบอื่น ๆในหน้านี้)

วิธีนี้เหมาะสำหรับกรณีที่คุณต้องการเฉพาะวิดีโอที่ไม่มีเสียง!

ดังนั้นถ้าคุณต้องการที่จะดาวน์โหลดเพียงวิดีโอ Vimeo (มักจะไม่มีเสียง) ผมสามารถยืนยันได้ว่านี้ส่วนขยายของ Google Chrome จะทำงานที่ดีจริงๆ: Flash Video Downloader

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.