Como fazemos o download de um vídeo de URL de blob [fechado]

219

Quero baixar um vídeo cujo URL não é um arquivo mp4 simples, mas seu URL é do tipo blob, por exemplo.

<video id="playerVideo" width="450px" autoplay="autoplay" height="338px" 
       style="height:100%;width:100%;" class="mejs-rai-e"
       src="blob:http://www.example.com/d70a74e1-0324-4b9f-bad4-84e3036ad354">
</video>

Existe alguma extensão ou software do Chrome que possa ser usado para baixar o vídeo em reprodução.

SidD
fonte
@cdlvcdlv Obrigado, cara! Depois de testar muitas ferramentas, essa foi a que funcionou no meu caso específico!
Felipeptcho 16/03/19
@felipeptcho De nada. É um prazer ver que, pela resposta, pode ajudar alguém.
Cdlvcdlv
2
Consulte a extensão HDS / HLS Video Downloader para navegadores baseados no Chromium.
precisa saber é
13
Por que todas as respostas a esta pergunta assumem que a extensão do arquivo é .m3u8? Isso nunca foi especificado na pergunta.
numbermaniac
Olá @SidD, você conseguiu resolver esse problema? Em caso afirmativo, você poderia me informar qual solução funcionou para você?
hagrawal 28/01

Respostas:

230

Acabei de apresentar uma solução geral, que deve funcionar na maioria dos sites. Tentei isso apenas no Chrome, mas esse método deve funcionar com qualquer outro navegador, pois as Ferramentas de Desenvolvimento são praticamente as mesmas em todos eles.

Passos:

  1. Abra as Ferramentas de desenvolvimento do navegador (geralmente F12 , ou Ctrl-Shift-I , ou clique com o botão direito do mouse e depois inspecione no menu pop-up) na página com o vídeo em que você está interessado.
  2. Vá para a guia Rede e recarregue a página. A guia será preenchida com uma lista de solicitações (pode ser de até cem delas ou mais).
  3. Pesquise os nomes dos pedidos e localize o pedido com .m3u8extensão. Pode haver muitos deles, mas provavelmente o primeiro a ser encontrado é o que você está procurando. Pode ter qualquer nome, por exemplo playlist.m3u8.
  4. Abra a solicitação e, na subseção Cabeçalhos, você verá o URL completo da solicitação no campo URL da solicitação . Copie-o. insira a descrição da imagem aqui
  5. Extraia o vídeo do m3u8. Existem muitas maneiras de fazer isso, eu darei as que eu tentei, mas você pode pesquisar mais no Google "baixando vídeo do m3u8".
    • Opção 1. Se você tiver o VLC player instalado, alimente o URL ao VLC usando a opção de menu " Abrir fluxo de rede ... ". Não vou entrar em detalhes sobre esta parte aqui, há vários guias abrangentes em muitos lugares, por exemplo, aqui . Se a página não funcionar, você sempre poderá pesquisar no Google por outra "vlc download online video".
    • Opção 2. Se você gosta mais da linha de comando, use o FFMPEG ou seu próprio script, conforme indicado nesta pergunta do Superusuário .
Vlad Nikiforov
fonte
49
A opção 3 é: use o URL da playlist diretamente com o youtube-dl, é muito simples!
Arnaud Tournier
4
O youtube-dl também funciona para arquivos mpd.
Gibado 17/05/19
2
@patricK Você pode tentar adicionar referer, exemplo:youtube-dl --add-header Referer: https://www.google.com/referer-page https://google.com/video.m3u8
Searene
1
importa se eu perguntar, como você abriu a barra de pesquisa no módulo de rede e procurou pelas palavras-chave "m3u8".
Zhou XF
1
E opção 4: use o JDownloader 2 para baixar o URL da lista de reprodução. Na minha opinião, essa é a maneira mais fácil.
Robin Hartmann
50

Use a extensão HLS Downloader Google Chrome para obter o link para a lista de reprodução M3U. Seu ícone na barra do navegador mostra o número de listas de reprodução encontradas na página atual. Ao clicar no ícone, você pode ver uma lista do link da lista de reprodução e, em seguida, usar o botão copiar ao lado de um link para copiá-lo.

Em seguida, use o programa youtube-dl para baixar o arquivo.

youtube-dl --all-subs -f mp4 -o "file-name-to-save-as.mp4" "https://link-from-Google_Chrome-HLS_Downloader_extension"

Explicação das opções da linha de comandos:

  • -f mp4 = Formato de saída mp4

  • --all-subs = Baixar todas as legendas

  • -o "nome-do-arquivo-para-salvar-como.mp4" = Nome do arquivo para salvar o vídeo como.

  • " https: // link-from-Google_Chrome-HLS_Downloader_extension " = Este é o link para a lista de reprodução que você copiou da extensão HLS Downloader.

Se você usa as mesmas opções de configuração o tempo todo para o youtube-dl, dê uma olhada nas opções de configuração do youtube-dl , pois isso pode economizar bastante digitação.

A extensão HLS Downloader é gratuita e de código aberto sob a licença MIT, se você quiser ver o código que pode ser encontrado na página do projeto no Github .

frederickjh
fonte
Isso funciona muito bem, exceto no meu caso, o MP4 não tinha som? Existe uma maneira de resolver isso?
Christopher D. Emerson
2
Eu não tive o seu acontecimento. Deve ser algo com o arquivo que você está baixando. Acredito que o padrão mp4 suporta várias faixas de áudio. Verifique se não há outra faixa de áudio e se a primeira é silenciosa.
frederickjh
1
Grande extensão! muito mais fácil do que fazer tudo ao seu redor com arquivos m3u8 e arquivos com bites estreitos No entanto, eu não precisava do que era essa coisa do youtube. O HLS Downloader fornece os arquivos de vídeo diretamente.
Justin Emlay 6/03
tente adicionar -x dentro das opções
Sir Von Berker 04/04
No meu caso, tentei o HLS Downloader com o Twitter e funcionou como o @Justin disse: deu o arquivo de vídeo diretamente. Mas também tentei as sugestões propostas por @Vlad na outra resposta - basicamente executando todas as etapas manualmente - com os mesmos resultados (ou seja, obter um .MP4arquivo de trabalho ).
Gwyneth Llewelyn em
27

O processo pode variar dependendo de onde e como o vídeo está sendo hospedado. Saber que pode ajudar a responder à pergunta com mais detalhes.

Como um exemplo; é assim que você pode baixar vídeos com links de blob no Vimeo.

  1. Veja o código fonte do player de vídeo iframe
  2. Pesquisar mp4
  3. Copiar link com consulta de token
  4. Download antes que o token expire

Fonte e instruções passo a passo aqui.

insira a descrição da imagem aqui

chiappa
fonte
2
Esse método funciona bem, mesmo que o tipo de arquivo urlnão seja .mp4 , basta verificar o cabeçalho do arquivo e renomeá-lo.
1/17
25

É assim que eu consigo "baixá-lo":

  1. Use o elemento inspecionar para identificar o URL do arquivo da lista de reprodução M3U
  2. Faça o download do arquivo M3U
  3. Use VLC para ler o arquivo M3U, transmitir e converter o vídeo para MP4

No Firefox, o arquivo M3U apareceu como do tipo application / vnd.apple.mpegurl

insira a descrição da imagem aqui

O conteúdo do arquivo M3U seria semelhante a:

Abra o VLC Medial Player e use a opção Media => Convert. Use o seu arquivo M3U (salvo) como fonte:

insira a descrição da imagem aqui

Drosite por Ioannis
fonte
3
Ótima dica! Parece que não há necessidade de baixar o m3u8arquivo - basta colar o URL externo como fonte.
na guia rede, há uma guia secundária para "Mídia". é mais fácil obter o arquivo m3u8 com apenas alguns itens.
pcarvalho
19

Existem várias maneiras de obter o URL .m3u8, visualizando a fonte de uma página, visualizando a guia Rede nas Ferramentas do desenvolvedor no Chrome ou usando um plug-in como o HDL / HLS Video Downloader .

Com o URL .m3u8 em mãos, você pode usar o ffmpegdownload do vídeo para um arquivo como este:

$ ffmpeg -i 'https://url/to/some/file.m3u8' -bsf:a aac_adtstoasc \
    -vcodec copy -c copy -crf 50 file.mp4
slm
fonte
11

Se você NÃO conseguir encontrar o .m3u8arquivo, precisará executar algumas etapas diferentes.

1) Vá para a guia rede e classifique por Media

Classificar por mídia

2) Você verá algo aqui e selecionará o primeiro item. No meu exemplo, é um mpdarquivo. copie o URL de solicitação.

3) Em seguida, faça o download do arquivo usando sua ferramenta de linha de comando favorita usando o URL da etapa 2.

youtube-dl -f bestvideo+bestaudio https://url.com/destination/stream.mpd

4) Dependendo da codificação, talvez você precise unir os arquivos de áudio e vídeo, mas isso dependerá de um vídeo por vídeo.

Rick
fonte
10

Já postei isso em alguns outros sites e, por que não compartilhá-lo com rapazes / moças no stackoverflow.

  1. Instale a extensão Video DownloadHelper no navegador Firefox.
  2. Com o DownloadHelper ativado, navegue até a página da Web que contém o vídeo que deseja baixar.
  3. Quando o vídeo estiver sendo transmitido, clique no ícone DownloadHelper. Ele fornecerá uma lista de todos os formatos de arquivo disponíveis no vídeo atual.
  4. Role para o formato de arquivo que deseja baixar
  5. No lado direito, você verá uma seta
  6. Clique nessa seta para obter mais informações sobre o vídeo atual e o formato selecionado
  7. Na janela exibida no final dessa seta, role para baixo e selecione "Detalhes"
  8. Agora você tem todos os detalhes sobre o vídeo atual e o formato selecionado. É algo assim.

Detalhes da ocorrência⊗ _needsAggregate _needsCoapp ações taxa de bits fragmentada descrPrefix durationFloat extension frameId fromCache grupo
hls id isPrivate length masterManifest mediaManifest originalId tamanho do referenciador status status topUrl url urlFilename

  1. Agora, observe as especificidades do referenciador nos Detalhes da ocorrência. Esse é o URL que você deseja. Copie e cole no seu downloader favorito.
Johny Flodder
fonte
9
  1. Encontre a lista de reprodução / manifesto na guia de rede das ferramentas do desenvolvedor. Sempre existe um, pois é assim que funciona. Pode ter uma extensão m3u8 que você pode digitar no filtro.
  2. Dê para a ferramenta youtube-dl. Ele pode baixar muito mais do que apenas o YouTube. Ele fará o download automático de cada segmento, combinará tudo com o FFmpeg e descartará as partes. Há uma boa chance de que ele seja compatível com o site do qual você deseja baixar nativamente, e você nem precisa executar a etapa 1.
  3. Se você encontrar um site teimoso e se deparar com 403 erros ... Telerik Fiddler para o resgate. Ele pode capturar e salvar qualquer coisa transmitida (como o arquivo de vídeo), pois atua como um proxy local. Tudo o que você vê / ouve pode ser baixado, a menos que seja conteúdo DRM como o Spotify.
Firsh - LetsWP.io
fonte
2
Como você usaria o youtube-dl para fazer isso? apenas youtube-dl https://....m3u8"?
Aziz Javed
Além disso, isso funciona para vídeos particulares?
Aziz Javed
@AzizJaved sim, exatamente assim. Não testei em vídeos particulares, mas se você pode ver a página onde eles estão, eles funcionam exatamente como em um vídeo público. O que importa é o que você vê no navegador: se você pode vê-lo, pode copiá-lo. Simples! 😉
Gwyneth Llewelyn
Vocês querem um artigo meu sobre o download de vídeos HLS criptografados? É basicamente o passo 3, mas com o ffmpeg para descriptografar e combinar os segmentos ts.
Firsh - LetsWP.io
0

Se o blob for instanciado com dados de um manifesto F4M (verifique a guia Rede nas Ferramentas do desenvolvedor do Chrome), você poderá baixar o arquivo de vídeo usando o script php postado aqui: https://n1njahacks.wordpress.com/2015/01/29 / como salvar hds-flash-streams-de-qualquer-página-da-web /

Colocando:

  if ($manifest == '')
    $manifest = $_GET['manifest'];

antes:

  if ($manifest)

você pode até executá-lo em um servidor da web, usando solicitações com a string de consulta: ?manifest=[manifest url] .

Observe que você provavelmente desejará usar um cliente FTP para recuperar o arquivo de vídeo baixado e limpar após o script (ele deixa todas as partes do vídeo baixadas).

Protetor um
fonte
-27

Você pode simplesmente clicar com o botão direito e salvar o blob como mp4.

Quando eu estava brincando com a gravação de vídeo / áudio com base no navegador, o blob de saída estava disponível para download diretamente.

pseudozach
fonte
Eu não acho que isso seja possível. Você pode compartilhar qual navegador está baixando?
Pirate X
Eu usei o chrome, mas estava me referindo a uma gravação de vídeo webrtc feita na máquina local. Para web blobs, o procedimento pode ser diferente.
Pseudozach
1
isso funciona para vídeos comuns, mas não para blobs.
precisa saber é o seguinte