Bagaimana cara mengunduh video dengan url gumpalan?

94

Saya mencoba mengunduh video dengan url src blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386.

Apakah ada proses yang dapat diikuti untuk mengunduh semua jenis video ini?

vinesh
sumber
Jika Anda ingin mengunduh video youtube gunakan ekstensi seperti Video Downloadhelper (Firefox)
Ganesh R.
saya ingin mengunduh dari vimeo url.
vinesh
Vinesh, cobalah menavigasi ke situs web vimeo dan mulai memutar video yang perlu Anda unduh. Video DownloadHelper akan mendeteksinya dan memberi Anda opsi untuk mengunduhnya. Saya mencobanya.
Ganesh R.
Tidak beruntung ketika saya mulai memutar video, saya melihat beberapa saran video dari ekstensi yang Anda sebutkan masing-masing sekitar 2 MB. ketika saya mengunduh suatu bagian, saya tidak dapat memutar file kecil itu. Saya mendapatkan kesalahan bahwa file rusak.
vinesh
masukkan tautan ke dalam komentar
Ganesh R.

Jawaban:

69

Saya menemukan cara untuk men-download video dengan blob urldi Vimeo(membaca di sini saya mengerti bagaimana melakukannya). Saya menulis langkah-langkah sederhana di sini. Saya menggunakan Google Chrome:

  1. Buka More ToolsDeveloper Tools
  2. Periksa apakah di tag video ada sesuatu seperti ini:

    <video preload="" src="blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"></video>
    
  3. Salin src dari tag iframe, jika ada, sesuatu seperti http://player.vimeo.com/video/XYZjika Anda menemukannya Anda dapat langsung ke titik 7, jika tidak ikuti langkah 4, 5, 6.
  4. Sekarang cari string ini https://skyfire.vimeocdn.com/.../master.json?base64_init=1di dalam halaman (menggunakan Tampilan Pengembang), Anda harus menemukannya di dalam fungsi javascript, seperti ini:

    (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. Salin tautan di dalam bidang url pada tab Chrome baru, misalnya https://48skyfiregce-a.akamaihd.net/.../master.json?base64_init=1akhiri dengan browser, itu akan membuka Anda file json seperti ini:

    {
        "clip_id": XYZ,
        "base_url": "../",
        "video": [
                     { ... ... ...
    
  6. Sekarang buat url dengan id Anda XYZseperti ini:https://player.vimeo.com/video/XYZ

  7. Ganti blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXdi dalam tag video dengan url terakhir (yang dibuat pada langkah sebelumnya # 6).
  8. Sekarang Anda akan melihat bahwa secara ajaib bidang src di dalam tag video berubah (jika tidak, coba langkah 7 beberapa kali) ...

    <video preload="none" src="https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg"></video>
    
  9. Gunakan tautan baru itu untuk memuatnya secara langsung, itu seperti ini: https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XX/X/XXXXXXX/XXXXXX//XXXXXXXXX.mp4?token=abcdefg

madx
sumber
7
Impresif. Bagaimana Anda mengetahui hal ini?
gronostaj
1
Pada langkah 7, apa yang Anda maksud dengan "url terakhir di dalam html"?
joaorodr84
6
Berfungsi sempurna, tetapi triknya kadang-kadang Anda harus mengganti nilai "src" beberapa kali untuk mendapatkan tautan unduhan yang dihasilkan.
Ashrith
19
Saat ini, untuk Vimeo jauh lebih mudah dan tidak memerlukan semua langkah. Cukup buka video Vimeo, cari <video>tag di struktur dev tools DOM dan ubah srcatribut dari blob:...menjadi x. Tidak ada yang akan terjadi - ini tidak masalah. Sekarang ubah lagi, menjadi y. Chrome akan mengonversinya 'secara ajaib' ke URL seperti pada langkah 8 atau 9. :-)
StanE
3
@StanE berfungsi seperti pesona, di Firefox juga, dan pasti lebih cepat ...
ling
10

Jawaban ini untuk URL Twitter -

  1. Klik kanan pada video dan klik Inspect Elements -

Anda akan menemukan kode seperti ini

<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. Salin Tempel kode di atas di notepad ++. Mengganti semua &quot;dengan "dan \/wth /di notepad ++. (Gunakan CTRL + H)

Anda akan mendapatkan sesuatu seperti

{
    "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"
}

Dari format JSON di atas, lihat nilai video_url

https://video.twimg.com/ext_tw_video/844504104512749568/pu/pl/e91Du5N2TZ09ZaW_.m3u8

Masalahnya di sini adalah, setelah 1 Agustus 2016, Twitter tidak lagi menggunakan video .mp4, tetapi mengonversi ke HLS baru, format streaming adaptif, dengan ekstensi file .m3u8 .

File .m3u8 pada dasarnya hanya pembungkus file teks, mereka super kecil (300-500 byte), dan ketika Anda membukanya dengan editor teks, file tersebut berisi tautan ke berbagai ukuran video

  1. Buka file m3u8 di notepad ++, itu akan berisi kode seperti ini

EXTM3U EXT-X-INDEPENDEN-SEGMENTS EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 256000, RESOLUTION = 180x320, CODECS = "mp4a.40.2, avc1.42001f" / ext_tw_video / 844504101212 180x320 / _Z42SY5zwMlLdFYx.m3u8 EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 832000, RESOLUTION = 360x640, CODECS = "mp4a.40.2, avc1.42001f" / ext4504/48/484/48/485/upload_internet.html. Phfjbbx2yinirLi.m3u8

  1. Salin masing-masing tautan dari atas sesuai kebutuhan resolusi Anda. Ulangi langkah yang sama sampai Anda memiliki file .ts . Unduh file .ts (file video).
Bajak Laut X
sumber
Apa maksud Anda, "Anda akan mendapatkan sesuatu seperti" - dari mana?
Pengguna
@ Pengguna dari kode di atasnya yang dimulai seperti<div id="playerContainer"
Pirate X
3
Hai, pada langkah 4, apa yang Anda maksud dengan "salin tautan masing-masing"? Itu bukan URL yang valid, dan saya tidak bisa menemukan cara mendapatkan videonya. EDIT: OK, benar, saya menemukannya. Anda harus menyebutkan bahwa Anda harus meletakkan " video.twimg.com " di depannya dan mengakses URL.
Elzo
Jika Anda tidak dapat menemukan id="playerContainer"elemen untuk mencari og:video:urldan membuka url dalam konten, dan periksa sumbernya.
perbaikan guille
Cara lain untuk melakukannya di twitter adalah dengan menjalankannya document.querySelector('video').srcdi tab konsol alat pengembang browser Anda.
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>

Saya juga punya blob:URL video/@src, tetapi dengan menonton Developer tools> Networkselama pemutaran ternyata itu video/source/@srcadalah URL untuk m3u8daftar putar.

Sebuah m3u8video yang -backed dapat segera diunduh oleh:

  • 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 - gumpalan URL terdengar seperti biner yang ingin Anda dapatkan tetapi mungkin ada cara yang lebih mudah untuk mendapatkan videonya. Cukup periksa tab Network di Dev tools saat Anda memutar video untuk melihat apa yang sebenarnya Anda ambil.

Vlastimil Ovčáčík
sumber
1
Bekerja pada mesin saya! Dan Anda dapat menyediakan berbagai jenis input stream -i <URL> -i <URL> -i <URL>untuk menggabungkan video, audio, dan terjemahan semua menjadi satu output :)
mcandre
@ mcandre Ya, itu tip yang bagus. Anda juga dapat menemukan m3u8 metalis (yaitu file m3u8 merujuk file m3u8 lainnya) dan ffmpeg akan mengunduh dan menggabungkannya dengan benar, sehingga Anda tidak perlu secara manual menentukan banyak input -i.
Vlastimil Ovčáčík
0

Saya menemukan cara lain untuk mengunduh video dengan blob urlmasuk Vimeo(lihat jawaban lain di halaman ini).

Solusi ini hanya cocok jika Anda menginginkan video tanpa suara!

Jadi, jika Anda ingin mengunduh hanya video Vimeo (seringkali tanpa suara), saya dapat mengonfirmasi bahwa ekstensi Google Chrome ini bekerja dengan sangat baik: Flash Video Downloader .

madx
sumber