¿Cómo descargar un video con blob url?


92

Estoy tratando de descargar videos con src url blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386.

¿Hay algún proceso que pueda seguirse para descargar todo este tipo de videos?


Si desea descargar videos de YouTube, use extensiones como Video Downloadhelper (Firefox)
Ganesh R.

Quiero descargar desde vimeo url.
vinesh

Vinesh, intenta navegar al sitio web de vimeo y comienza a reproducir el video que necesitas descargar. Video DownloadHelper lo detectará y le dará la opción de descargarlo. Lo intenté.
Ganesh R.

Sin suerte. cuando comencé a reproducir video, vi varias sugerencias de video de la extensión que mencionaste, cada una de alrededor de 2 MB. cuando descargué una parte, no pude reproducir ese pequeño archivo. Recibí un error de que el archivo está dañado.
vinesh 01 de

poner el enlace en los comentarios
Ganesh R.

Respuestas:


67

He encontrado una manera de descargar el video con blob urlen Vimeo(leer aquí he entendido cómo hacerlo). Escribo los pasos simples aquí. Estoy usando Google Chrome:

  1. Abre el More ToolsDeveloper Tools
  2. Compruebe si en la etiqueta del video hay algo como esto:

    <video preload="" src="blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"></video>
    
  3. Copie el src de la etiqueta de iframe, si lo hay, algo así como http://player.vimeo.com/video/XYZsi lo encontrara, puede ir directamente al punto 7; de lo contrario, siga los pasos 4, 5, 6.
  4. Ahora busque esta cadena https://skyfire.vimeocdn.com/.../master.json?base64_init=1dentro de la página (usando la Vista de desarrollador), debería encontrarla dentro de una función de JavaScript, como esta:

    (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. Copie el enlace dentro del campo de URL en una nueva pestaña de Chrome, por ejemplo, https://48skyfiregce-a.akamaihd.net/.../master.json?base64_init=1ábralo con un navegador, le abrirá un archivo json como este:

    {
        "clip_id": XYZ,
        "base_url": "../",
        "video": [
                     { ... ... ...
    
  6. Ahora redacte una url con su identificación de XYZesta manera:https://player.vimeo.com/video/XYZ

  7. Reemplace blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXdentro de la etiqueta de video con esa última url (la creada en el paso anterior # 6).
  8. Ahora notará que, mágicamente, el campo src dentro de la etiqueta de video cambió (si no es así, intente el paso 7 varias veces) ...

    <video preload="none" src="https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg"></video>
    
  9. Use ese nuevo enlace para descargarlo directamente, es algo como esto: https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg


77
Impresionante. ¿Cómo has resuelto esto?
gronostaj

1
En el paso 7, ¿qué quiere decir con "esa última URL dentro del html"?
joaorodr84

66
Funciona perfectamente, pero el truco es que a veces tienes que reemplazar el valor "src" varias veces para generar el enlace de descarga.
Ashrith

19
Actualmente, para Vimeo es mucho más fácil y no requiere todos los pasos. Simplemente abra un video de Vimeo, busque la <video>etiqueta en la estructura DOM de las herramientas de desarrollo y cambie el srcatributo de blob:...a x. No pasará nada, esto está bien. Ahora cámbielo nuevamente, a y. Chrome lo convertirá 'mágicamente' a la URL como en el paso 8 o 9. :-)
StanE

3
@StanE funciona como un encanto, en Firefox también, y es definitivamente más rápido ...
ling

10

Esta respuesta es para las URL de Twitter:

  1. Haga clic derecho en el video y haga clic en Inspeccionar elementos -

Encontrarás un código como este

<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.Copie Pegar el código anterior en el bloc de notas ++. Reemplace todo &quot;con "y con \/wth /en notepad ++. (Use CTRL + H)

Obtendrás algo como

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

Desde el formato JSON anterior, vea el valor video_url

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

El problema aquí es que, después del 1 de agosto de 2016, Twitter ya no usa videos .mp4, sino que se convierte a un nuevo formato HLS, de transmisión adaptativa, con una extensión de archivo .m3u8 .

Los archivos .m3u8 son básicamente un contenedor de archivos de texto, son muy pequeños (300-500 bytes), y cuando los abre con un editor de texto, contienen enlaces a diferentes tamaños de video

  1. Abra el archivo m3u8 en notepad ++, contendría un código como este

EXTM3U EXT-X-SEGMENTOS INDEPENDIENTES EXT-X-STREAM-INF: ID DE PROGRAMA = 1, ANCHO DE BANDA = 256000, RESOLUCIÓN = 180x320, CÓDECS = "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 / 8445041045127/5/360/68/68/360/360/360/360 Phfjbbx2yinirLi.m3u8

  1. Copie el enlace respectivo desde arriba según su necesidad de resolución. Repita el mismo paso hasta que tenga el archivo .ts . Descargue el archivo .ts (el archivo de video).

¿Qué quieres decir con "obtendrás algo así"? ¿De dónde?
Usuario

@Usuario del código de arriba que comienza como<div id="playerContainer"
Pirate X

3
Oye, en el paso 4, ¿qué quieres decir con "copiar el enlace respectivo"? No es una URL válida, y no puedo encontrar cómo obtener el video con ella. EDITAR: OK, cierto, lo encontré. Debe mencionar que debe colocar " video.twimg.com " antes y acceder a la URL.
Elzo

Si no puede encontrar el id="playerContainer"elemento, busque og:video:urly abra la url en el contenido e inspeccione la fuente de eso.
guillefix

Otra forma de hacerlo en Twitter es ejecutar document.querySelector('video').srcen la pestaña de la consola de herramientas del desarrollador de su navegador.
Farzad YZ

7
<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>

También tenía blob:URL video/@src, pero al mirar Developer tools> Networkdurante la reproducción resultó que video/source/@srcera URL para la m3u8lista de reproducción.

Un m3u8video respaldado se puede descargar fácilmente:

  • 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 suena como el binario que desea obtener, pero puede haber una forma más fácil de obtener el video. Simplemente revise la pestaña Red en las herramientas de desarrollo mientras reproduce el video para ver lo que realmente está buscando.


1
¡Funciona en mi máquina! Y puede suministrar múltiples tipos de entradas de transmisión -i <URL> -i <URL> -i <URL>para combinar video, audio y subtítulos en una sola salida :)
mcandre

@mcandre Sí, es un buen consejo. También puede encontrar m3u8 metalist (es decir, el archivo m3u8 que hace referencia a otros archivos m3u8) y ffmpeg lo descargará y combinará correctamente, por lo que no necesita especificar manualmente múltiples entradas -i.
Vlastimil Ovčáčík

0

Encontré otra forma de descargar un video con blob urlin Vimeo(vea la otra respuesta en esta página).

¡Esta solución es adecuada solo si desea solo el video sin los sonidos!

Entonces, si desea descargar solo un video de Vimeo (a menudo sin sonidos), puedo confirmar que esta extensión de Google Chrome funciona realmente bien: Flash Video Downloader .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.