Existe um baixador de linha de comando de código aberto muito popular chamado youtube-dl
, que faz exatamente isso. Ele captura os links de arquivos de vídeo e de áudio de um determinado link do YouTube - ou de qualquer outro site de vídeo popular da Web, como o Vimeo, o Yahoo! Vídeo, uStream, etc.
Para ver como isso é feito, consulte o extrator do YouTube . Isso é demais para mostrar aqui. Outros extratores existem para sites mais simples . Steven Penny tem um simples downloader de JavaScript para o YouTube também, o que é um pouco mais simples.
Mas, basicamente, para um player de vídeo em Flash, ele deve ser inicializado e configurado por meio de algum JavaScript. Simplesmente falando, o player do objeto Flash receberá um URL de um fluxo de vídeo para carregar.
Para encontrar o fluxo de vídeo, você terá que analisar o código HTML e JS da página de vídeo para encontrar o código de inicialização relevante e, a partir daí, tentar encontrar o link para o arquivo MP4 real. Pode estar lá em texto simples, mas também pode ser gerado em tempo real com alguns tokens de download específicos. Muitas vezes, o JavaScript é ofuscado para dificultar a sua reengenharia. Ou as informações de vídeo podem estar contidas em um arquivo XML carregado de forma assíncrona pelo JS.
Para o vídeo de download progressivo em HTML5, o arquivo de origem real é geralmente mencionado diretamente no source
child da tag video
, portanto, se você pesquisar na página mp4
ou similar. Por exemplo, no noticiário alemão Tagesschau 100 , você encontrará:
<source src="http://media.tagesschau.de/video/2014/0626/TV-20140626-1649-5801.webl.h264.mp4"type="video/mp4">
Para mais tecnologias avançadas de reprodução como o MPEG DASH ou o HTTP Live Streaming (HLS) da Apple, é necessário analisar um meta -informação de arquivo para obter o fluxo de vídeo real. O metarquivo ( .mpd
, por exemplo, em DASH, e .m3u8
, para HLS) conterá links para segmentos de vídeo e áudio, que você teria que combinar posteriormente para obter um arquivo reproduzível.
Não há solução geral para isso. Requer inspeção e depuração cuidadosa do site de destino.