157

I am trying to download video with src url blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386.

Is there a process that can be followed to download all this type of videos?

fixer1234
  • 27,064
  • 61
  • 75
  • 116
vinesh
  • 1,723
  • 4
  • 12
  • 9
  • If you want to download youtube videos use extenstions like Video Downloadhelper (Firefox) – Ganesh R. Jan 30 '16 at 22:42
  • 1
    i want to download from vimeo url. – vinesh Jan 31 '16 at 02:48
  • Vinesh, try navigating to vimeo website and start playing the video you require to download. Video DownloadHelper will detect it and give you an option to download it. I tried it. – Ganesh R. Jan 31 '16 at 06:09
  • No Luck. when I started playing video, I saw multiple video suggestion from the extension you mentioned each of around 2 MB. when I downloaded a part, I was not able to play that small file. I was getting error that file is corrupt. – vinesh Feb 01 '16 at 06:42
  • put the link in comments – Ganesh R. Feb 01 '16 at 15:45
  • it is not publicly available(login with paid service). :( Btw, youtube videos were working fine with your suggestion. Thanks for your help!! – vinesh Feb 02 '16 at 06:23
  • try http://savevideo.me/ – TomFuertes Aug 23 '16 at 06:46
  • Below I wrote some simple steps for doing it, let me know if they work for your case – madx Oct 28 '16 at 11:31
  • [this chrome extension](https://chrome.google.com/webstore/detail/download-vimeo-videos-pre/phpaiffimemgakmakpcehgbophkbllkf) works for me – Shining Love Star Jul 17 '17 at 05:06
  • With Chrome 60.0.3112.113 I was able to directly open a video url with blob in the beginning and then simply saving it. – Ciantic Sep 10 '17 at 16:19
  • Can you provide a public link to test the solutions? I never had a problem downloading videos from vimeo or youtube with [Jdownloader 2](http://jdownloader.org/jdownloader2). It even lets you choose quality of video. – cdlvcdlv Feb 28 '18 at 09:38
  • In the general case it's necessary to understand [what blob URL is](https://stackoverflow.com/questions/30864573/what-is-a-blob-url-and-why-it-is-used). Then it's possible to intercept calls to blob URL creation and obtain the source data. -- – user202729 Feb 12 '21 at 02:29
  • If you would like to batch download youtube videos (Like playlists) I recommend [this](https://youtubemultidownloader.net/playlists.html). It allows you to download batch youtube videos with minimal ads. If you need to download copyrighted content, just turn `youtube.com` into `youtubepp.com`. It will redirect. – Ethan O'Brien Feb 26 '21 at 15:00
  • The easiest way I found was to use https://www.downloadhelper.net/ Browser Extension. – Caio Mar Feb 28 '22 at 17:02
  • The most common workaround I've seen posted in other places is to open your browser's devtools and check the network tab for a playlist being downloaded (often m3u8, but I've also seen mpd). That playlist is often where the data for blob is actually coming from. Open that playlist in VLC and instead of playing it, convert it to some other local container, the first option, mp4, seems to work most of the time – mendota Sep 18 '22 at 23:47

8 Answers8

100

I found a way to download the video with blob url in Vimeo (reading here i understood how doing it). I write the simple steps here. I'm using Google Chrome:

  1. Open the More ToolsDeveloper Tools
  2. Check if in the video tag there is something like this:

    <video preload="" src="blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"></video>
    
  3. Copy the src of the iframe tag, if any, something like http://player.vimeo.com/video/XYZ if you found it you can go straight to the point 7, otherwise follow steps 4, 5, 6.
  4. Now look for this string https://skyfire.vimeocdn.com/.../master.json?base64_init=1 inside the page (using the Developer View), you should found it inside a javascript function, like this:

    (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. Copy the link inside the url field on a new Chrome tab, for example https://48skyfiregce-a.akamaihd.net/.../master.json?base64_init=1 end open it with a browser, it will open you a json file like this:

    {
        "clip_id": XYZ,
        "base_url": "../",
        "video": [
                     { ... ... ...
    
  6. Now compose a url with your id XYZ like this: https://player.vimeo.com/video/XYZ

  7. Replace blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX inside the video tag with that last url (the one created in the previous step #6).
  8. Now you will notice that magically the src field inside of the video tag changed (if it does not, try step 7 multiple times)...

    <video preload="none" src="https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg"></video>
    
  9. Use that new link to dowload it directly, it's something like this: https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg

madx
  • 1,107
  • 2
  • 9
  • 11
  • 14
    Impressive. How have you figured this out? – gronostaj Oct 02 '16 at 11:24
  • 4
    In step 7, what do you mean with "that last url inside the html"? – joaorodr84 Feb 06 '17 at 23:32
  • nope... didn't magically change. Ideas? – special0ne Feb 16 '17 at 18:36
  • there are sites that you just copy paste the URL and it will download it.. – special0ne Feb 16 '17 at 18:52
  • 6
    Works perfectly, but the trick is sometimes you have to replace the "src" value multiple times to get the download link generated. – Ashrith Feb 17 '17 at 03:23
  • 1
    Thank you @Ashrith I'll add your trick as an answer improvement – madx Feb 19 '17 at 11:37
  • Can you explain the "Last URL inside the HTML" bit ? – Pirate X Mar 22 '17 at 12:08
  • It's the URL composed in the step #6 – madx Mar 22 '17 at 12:55
  • @daria this doesn't work for Vimeo. blob URL's from Vimeo are streamed as XHR requests every second or so. There is no request URL available in the Network tab. – Jebble Sep 26 '17 at 09:45
  • You can get the clip id directly from video downloader chrome extension :) – Shining Love Star Oct 01 '17 at 10:38
  • 47
    Currently, for Vimeo it is much easier and doesn't require all the steps. Simply open a Vimeo video, find the ` – StanE Jan 04 '18 at 18:31
  • Also work in Firefox/firebug, but as @Ashrith said, I needed to paste the url twice. Awesome trick!! – ling Jan 19 '18 at 23:37
  • 3
    @StanE it works like a charm, in Firefox too, and is definitely faster... – ling Feb 27 '18 at 03:42
  • @StanE Wow! How does that work? – Takneik Dec 09 '18 at 05:03
  • Genius! My process was a bit bumpy but eventually did work! Love it! – Christopher Feb 07 '19 at 18:19
  • 2
    @StanE I don't know how you have found it, but it works like a charm! Nota Bene: the "x" and "y" he mentions are literally the exact values you can enter, they don't represent anything else. – Dario Fumagalli Nov 12 '19 at 18:38
  • @StanE, this applies for all video sites or only for youtube? – Zhang Feb 01 '20 at 03:59
  • @Zhang Vimeo, not YouTube. I tried it on several other sites, but it doesn't seem to work anywhere else, afaik. Maybe it's something with JavaScript on Vimeo, which triggers this. – StanE Feb 05 '20 at 11:16
  • It is work for `https://iq.com/` website? – mastersuse Jul 27 '20 at 07:29
  • I don't think that it could work with that iq.com, sorry – madx Jul 27 '20 at 12:48
  • 1
    @StanE just confirming for the masses that your approach still works in Jan 2021, and it's WAY easier than everything else. – Dave Jan 08 '21 at 15:18
  • Hello @madx I'm trying to follow the steps. Can you tell me how to replace jove.com/03cf88b7-86a3-402a-9e1b-9d40a52f7b81 inside the video tag please? – Gennaro Arguzzi Jun 03 '23 at 09:32
  • Sorry @GennaroArguzzi your link is broken again – madx Jun 03 '23 at 10:05
  • Hi @madx the original link is this one (I tried it in chrome and firefox and it works): https://app.jove.com/it/v/10405/hydraulic-jumps#:%7E:text=A%20hydraulic%20jump%20is%20a,decreased%20average%20flow%20velocity%20downstream. – Gennaro Arguzzi Jun 03 '23 at 10:12
  • You could try with this chrome extension: https://chrome.google.com/webstore/detail/video-downloadhelper/lmjnegcaeklhafolokijcfjliaokphfk I just tried with it and worked fine – madx Jun 03 '23 at 10:18
  • @madx I tried to click on it while I was watching the video and it says "no media to process in the current page"..how did you do it? – Gennaro Arguzzi Jun 03 '23 at 16:08
  • Have you installed the Video DownloadHelper Companion too? From this link: "https://www.downloadhelper.net/install-coapp" --> Other system installers, you can download it and install the companion. Then restart Chrome, as soon as you start the video it should appear the possibility to download it. – madx Jun 03 '23 at 20:07
  • Hi @madx sorry for the delay. I tried and the result is the same (actually the first time I saw the video, but when I clicked to download it, an error occured). – Gennaro Arguzzi Jun 10 '23 at 21:49
  • 1
    Ok, I don't know. For me it works fine even with that extension. But I have found another solution. Install this chrome extension: https://chrome.google.com/webstore/detail/fetchvvideo-downloaderhls/imleiiaoeclikefimmcdkjabjbpcdgaj/related Then look at the m3u8 URL that appears in the extension and copy paste it in the browser to download it. I checked the video with VLC after the download. – madx Jun 11 '23 at 07:43
  • 1
    @madx thank you very very much for your precious help and for your willingness!!! It works very well:) – Gennaro Arguzzi Jun 11 '23 at 21:42
  • Hi @madx if possible I'd like to ask you a question: do you know how to download this video? FetchV video downloader fails in this case. Sorry for the nuisance https://video.repubblica.it/salute/medicina-e-ricerca/aspartame-e-questione-di-dose-cosa-sappiamo-del-rischio-tumori/448635/449601?ref=RHRT-BG-P1-S1-T1&rpl=1 – Gennaro Arguzzi Jul 05 '23 at 20:07
  • For that page you can try this chrome extension "Stream Recorder - download HLS as MP4": https://chrome.google.com/webstore/detail/stream-recorder-download/iogidnfllpdhagebkblkgbfijkbkjdmm/related – madx Jul 06 '23 at 12:37
  • @madx thank you a lot! Wonderful extension. – Gennaro Arguzzi Jul 22 '23 at 16:44
40
<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>

I also had blob: URL in video/@src, but by watching Developer tools > Network during playback it turned out that video/source/@src was URL for m3u8 playlist.

An m3u8-backed video can be readily downloaded by either:

  • 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 sounds like the binary you want to get but there might be easier way to get the video. Just check out Network tab in Dev tools while you play the video to see what you are actually fetching.

Vlastimil Ovčáčík
  • 2,748
  • 1
  • 24
  • 32
  • 2
    Works on my machine! And you can supply multiple kinds of stream inputs with `-i -i -i ` to merge video, audio, and subtitles all into one output :) – mcandre Nov 25 '18 at 17:31
  • 2
    @mcandre Yes, that's a good tip. You can also possibly find `m3u8` *metalist* (i.e. m3u8 file referring other m3u8 files) and ffmpeg will download and merge it properly, so you don't need to manually specify multiple inputs `-i`. – Vlastimil Ovčáčík Nov 26 '18 at 13:30
  • 1
    Confirmed that this still works! – oscilatingcretin Mar 25 '20 at 23:50
  • The key is they can send the m3u8 payload in an obscure way, but it is usually AFTER the video player JS and BEFORE the chunks, so it will narrow down the files you need to dig through. – Nelson Feb 13 '22 at 11:28
  • I always used to check Network Tab but got sidelined this time by looking at the HTML source. Dev Tools rock! Thank you so much for reminding its importance – asgs Aug 18 '23 at 16:58
12

This answer is for Twitter URLs -

  1. Right click on the video and click Inspect Elements -

You'll find a code like this

<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.Copy Paste above code in notepad++. Replace all the &quot; with " and \/ wth / in notepad++. (Use CTRL+H)

You'll get something like

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

From above JSON format, see the value video_url

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

The issue here is, after August 1st, 2016, Twitter is no longer using .mp4 videos, but converting to a new HLS, adaptive-streaming format, with a .m3u8 file extension.

.m3u8 files are basically just a text file wrapper, they are super small (300-500 bytes), and when you open them with a text editor, they contain links to different video sizes

  1. Open the file m3u8 in notepad++, it would contain code like this

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

  1. Copy the respective link from above as per your resolution need. Repeat the same step until you have .ts file. Download the .ts file (the video file).
Pirate X
  • 300
  • 2
  • 7
  • What do you mean, "you'll get something like" -- from where? – User Mar 26 '17 at 01:09
  • @User from the code above it which starts like `
    – Pirate X Mar 26 '17 at 10:51
  • 4
    Hey, in step 4, what do you mean by "copy the respective link" ? It isn't a valid URL, and I can't find how to get the video with it. EDIT : OK, right, I found it. You should mention that you have to put "https://video.twimg.com" before it and access the URL. – Hey Jun 17 '17 at 10:37
  • If you can't find the `id="playerContainer"` element look for `og:video:url` and open the url in the content, and inspect the source of that. – guillefix Mar 07 '18 at 21:01
  • Another way to do it on **twitter** is to run `document.querySelector('video').src` in your browser developer tools console tab. – Farzad Yousefzadeh Oct 14 '18 at 20:16
  • There is currently no `playerContainer` anymore, so, this answer is no more usable. – Lenka Čížková Sep 26 '21 at 18:57
4

This is what worked for me using Chrome, but I would think any browser that has "Developer Tools" would work. I hope this helps all of humanity...

Go to the web page with the embedded video. Open up Developer Tools (for Chrome it's Right-Click | Inspect. For Firefox it's Right-Click | Inspect Element.

On the top of the Inspector, there will be a bunch of tabs. Select the Network tab. Look for the Headers tab. If the video auto-starts, you may have to stop it. Also click the Record (red circle icon far left under the Network tab. You'll want to stop recording.

When the page has completely loaded, click the Record button, and on the video, click Play. You'll see a bunch of requests/responses show up in the Headers area. You're looking for a request with the playlist (.m3u8) for the video. The URL should look something like this in the Headers section

https://cdnapisec.kaltura.com/p/1289861/sp/0/playManifest/entryId/1_zb2s80ga/format/applehttp/protocol/https/a.m3u8

Copy/paste that link into your browser, and at least in Chrome, that file (a.m3u8) will be downloaded. The filename for your site may differ.

Go to where you saved that file and open it with VLC. Select Media | Convert / Save. Click the Add... button and find the .m3u8 file you just downloaded. Click Open. Click on the Convert / Save button. Make sure Convert is selected, and click Browse to set the destination of the converted file.

Click the Automatically select filename extension (.mp4) in the bottom left of the window, and click Save. Select Start and you should see the video play, and once that's done, the MP4 video should be in your save location.

Good luck.

Alan W.
  • 151
  • 1
2

This is for blob video from facebook. Requires minimum technical expertise.

  1. On the video, click on the three dots in the upper right and click 'Copy Link'. Link will look like this: https://fb.watch/1F3iBykxNf/
  2. Open URL in browser.
  3. Now you have the ablility to right-click the video hitbox. Right-click the video hitbox, and click 'Copy video URL at current time'. The URL will look something like this: https://www.facebook.com/686268088027568/videos/784217565526864/?t=0
  4. Paste that URL into https://fbdown.net/. For me I was able to get an mp4 video.

I have no affiliation with fbdown.net.

Jeff Luyet
  • 269
  • 1
  • 6
2

A blob is already an indicator that content has already been downloaded, so there's no need to download again. As opposed to text data, a blob is binary data and therefore is much smaller (each char takes two bytes in JavaScript) than text or text encoded data. Another benefit of blob is since data has been already downloaded, the browser doesn't need to send multiple requests to the originating server to render the same content.

Instead, the server packages content and any instructions for further content to be added (at client side), sends to browser (client) which renders content & handles any content update on client side, relieving server from additional traffic or workload. Blobs have their roots in databases, which evolved to store data as binary objects, for the very same reasons of efficiency. The beginnings of blobs were already evident in the days when dynamic webpages were making headlines and client side scripting became a thing.

A blob itself is data/resource, as opposed to a URL which points to source of data, and can be as simple as an array of bytes or a single file. To extract data from a blob for rendering in a browser, pass the blob to URL.createObjectURL() to create a blob URL in the browser, of the form
blob:[protocol]://[server].[domain]/[blob ID]
eg. blob:https://thenewsit.com/345a291c-ac2e-456a-a202-2a8f131327ea

This URL then becomes the source of data eg. fed to src attribute of html tags or elements for rendering in the browser, without involving the server. In your case, you already have a blob url, meaning the video data is already in the browser and the browser is showing you the video contained in that blob object, instead of getting it from the server (youtube).

An example to create a blob & render content from blob object:

HTML

<input type="file" id="fileItem" onchange="onChange()">
 <video></video>
 <br><label id="blob"></label>

JavaScript

function onChange() {
  var file = document.getElementById('fileItem').files[0];
  var vid = document.getElementsByTagName('video')[0];
  var url = URL.createObjectURL(file);

  document.getElementById('blob').innerHTML = "Blob URL is:<br>".concat(url); 
  document.getElementById('fileItem').type = "hidden";

  vid.src = url;
  vid.load();
  vid.onloadeddata = function() {
    vid.play();
  }
}

Tested in jsfiddle

Zimba
  • 1,051
  • 11
  • 15
0

I found another way to download a video with blob url in Vimeo (see the other answer in this page).

This solution is suitable only if you want just the video without the sounds!

So, if you want to download just a Vimeo video (often without sounds), I can confirm that this Google Chrome extension works really good: Flash Video Downloader.

madx
  • 1,107
  • 2
  • 9
  • 11
0

All previous answers are nice hacks, but simplest way is to use https://jdownloader.org/, and paste m3u8 playlist link into it.

AndriuZ
  • 219
  • 1
  • 16