As opções relevantes que você precisa:
# Filesystem
--write-annotations
--write-description
--write-info-json
# Thumbnail images
--write-all-thumbnails
# Video format
--format bestvideo+bestaudio/best
--merge-output-format mkv
# Subtitle
--all-subs
--write-auto-sub
--write-sub
# Post-processing
--add-metadata
--embed-subs
Copie isso para o seu arquivo de configuração ( /etc/youtube-dl.conf
ou ~/.config/youtube-dl/config
).
Usando essa configuração, baixei este vídeo e youtube-dl
escrevi os seguintes arquivos:
$ ls
The Problem with Time & Timezones - Computerphile.annotations.xml
The Problem with Time & Timezones - Computerphile.description
The Problem with Time & Timezones - Computerphile.info.json
The Problem with Time & Timezones - Computerphile.jpg
The Problem with Time & Timezones - Computerphile.mkv
Eu não posso postar mediainfo
's saída aqui porque excede o limite de caracteres, mas você pode vê-lo no github .
Também quero baixar o vídeo / áudio da mais alta qualidade possível, sem perda de qualidade.
youtube-dl
baixa vídeos da mais alta qualidade possível por padrão, mas você pode forçar esse comportamento usando --format bestvideo+bestaudio/best
.
Mesmo que não seja o YouTube, eu também queria fazer o download de alguns dos meus cursos udemy que comprei para assisti-los enquanto estou em uma longa viagem.
Por favor, leia o artigo Posso baixar um curso para o meu computador? :
Por padrão, os cursos completos não podem ser baixados de um computador. Fazemos isso por preocupações com pirataria.
Observe que você sempre pode salvar cursos para visualização offline no aplicativo móvel da Udemy . Para obter informações sobre como baixar palestras em vídeo para o seu dispositivo móvel iOS, clique aqui . Para etapas sobre como baixar vídeos para visualização offline em um dispositivo Android, clique aqui .
Eu ffmpeg
instalei e ouvi dizer que você precisa disso para downloads sem perdas do YouTube, mas não sei como vinculá-lo youtube-dl
.
youtube-dl
usa avconv
por padrão, mas --prefer-ffmpeg
permite que você use ffmpeg
. De qualquer forma, esta opção não é necessária para " downloads sem perdas ". No exemplo que forneci, youtube-dl
usado apenas ffmpeg
para mesclar todos os formatos baixados em um único arquivo MKV.
youtube-dl
?youtube-dl [youtube-link]
?youtube-dl
não seria possível baixar certos vídeos se a--youtube-skip-dash-manifest
opção não estivesse presente. Acabei de editar essa opção, obrigado por me dizer.Para simplesmente baixar o vídeo, você pode usar o seguinte:
Para selecionar a qualidade do vídeo, você deve primeiro usar a opção -F para listar os formatos disponíveis.
E esta é a saída do seu vídeo:
Aqui estão algumas opções úteis para legendas:
E para miniaturas:
Você também pode encontrar mais informações sobre a qualidade do vídeo aqui
fonte
youtube-dl
usa os melhores formatos de áudio e vídeo disponíveis por padrão. Se você deseja substituir uma configuração diferente no arquivo de configuração, pode usar-f bestvideo+bestaudio/best
(que é o mesmo que o padrão) ou ignorar o arquivo de configuração (--ignore-config
).youtube-dl https://www.youtube.com/watch?v=KYBok-XGsKM
@leetbacoon veja a resposta do comentário na parte inferior. (Rep baixo ainda sry)
Nota: Eu usarei nomes de switch mais longos para evitar confusão. Muitos dos switches usados têm versões mais curtas. Consulte Documentos: Opções .
Nota: - por conveniência visual,
\
é usado para exibir os interruptores separadamente; tudo\
pode ser omitido; se estiver usando,\
verifique se não há caracteres de espaço depois\
.Sinopse: Um comando ytdl para baixar um único arquivo de vídeo da mais alta qualidade de áudio e vídeo disponível. Salva o vídeo em seu próprio diretório (especificado por você). Faz o download de todos os metadados disponíveis, grava cada um nos respectivos formatos de arquivo e salva no mesmo diretório. Adiciona metadados de vídeo ao arquivo de saída de vídeo.
Substitua pelo seu:
/archive/videos/TED_Archive/
nos comutadores--download-archive
e--output
por um caminho de diretório de sua escolha.====
Nota: Coloque todos os argumentos com
' '
para analisar a segurança.Explicação das opções recomendadas:
--limit-rate '0.25M'
é usado para limitar a velocidade máxima disponível de download de cada instância do youtube-dl em B / s (bytes por segundo).Argumentos: qualquer nero inteiro positivo com um sufixo unidade maiúscula.
Sufixos de unidade: K para Kilobyte; M para Megabyte; Não está claro se o Gigabyte é suportado.
Além disso:
1. evite o bloqueio de conexão à Internet.
2. útil ao gerenciar a velocidade de download de várias instâncias ytdl simultâneas.
Ommission:
1. entope a internet; incapaz de navegar, com atraso na reprodução do vídeo do youtube.
2. baixará o vídeo o mais rápido possível.
Nota: Você pode executar várias instâncias do youtube-dl simultaneamente.
--retries '5'
é usado para tentar novamente o download de um vídeo automaticamente, se ele falhar. Útil ao baixar uma lista de reprodução ou um canal inteiro (que é, em termos do Youtube, também uma lista de reprodução (desse canal específico)).Valores: escolha qualquer número inteiro positivo. O padrão é
10
. Max éinfinite
(insira como string literal).--continue
Argumentos: nenhum
Adição:
1. forçará a retomada do downalod de arquivos parciais
Nota: o ytdl baixa vídeos em pedaços; blocos são preservados se o ytdl terminar inesperadamente durante o download.
Omissão:
1. Por padrão, o ytdl continuará os downloads, se possível.
--no-overwrites
Argumentos: nenhum
ainda: será não substituir existente arquivos de metadados com os mesmos nomes.
Omissão: substituirá os arquivos de metadados existentes com o mesmo nome, mas não o arquivo de vídeo.
--call-home
usado para entrar em contato com o servidor ytdl para depuração.--write-info-json
Argumentos: nenhum
Formato de saída: json;
Conteúdo informativo: contagem de visualizações, curtidas, data de upload, informações de qualidade de áudio e vídeo, etc. (mas não a descrição do texto do vídeo (postado abaixo do vídeo pelo remetente (layout do youtube em 2018))))
Adição: grava os metadados do vídeo em um
.info.json
arquivo separado . Salva na mesma pasta que o arquivo de vídeo.Omissão: não afeta o
--add-metadata
que ainda gravará metadados de vídeo no arquivo de saída de vídeo.--write-description
Argumentos: nenhum
Formato de saída: texto sem formatação;
Adição: grava o texto postado pelo carregador de vídeo na seção de descrição de um vídeo (abaixo do vídeo (layout do youtube de 2018)) em um
Write .description
arquivo separado . Salva na mesma pasta que o arquivo de vídeo.--write-thumbnail
grava a miniatura de maior resolução disponível (chamadamaxresdefault.jpg
pelo youtube) no.jpg
arquivo. Renomeado de acordo com o modelo especificado com--output
. Salva no mesmo diretório que o arquivo de vídeo.Argumentos: nenhum
Formato de saída: somente JPEG;
Nota: use
youtube-dl --list-thumbnails '<video_url>'
para investigar as miniaturas disponíveis de um vídeo específico (não funciona nos links da lista de reprodução); Ex.:youtube-dl --list-thumbnails 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--write-annotations
grava anotações em vídeo no.annotations.xml
arquivo. Renomeado de acordo com o modelo especificado com--output
. Salva no mesmo diretório que o arquivo de vídeo.Argumentos: nenhum
Formato de saída: .xml;
--all-subs
escreve todas criadas costume legendas disponíveis para um vídeo para seus respectivos arquivos (ex .:subtitles.en.vtt
,subtitles.fr.vtt
,subtitles.es.vtt
)Argumentos: nenhum
Formato de saída: Padrão
.vtt
; pode especificar outros formatos com--sub-format
Mensagens de erro: Se não houver legendas disponíveis, uma mensagem WARNING será impressa no formato stdout:
WARNING: video doesn't have subtitles
Comando útil:
Nota: use
youtube-dl --list-subs '<video_url>'
para investigar as miniaturas disponíveis de um vídeo específico (não funciona nos links da lista de reprodução);Ex.:
youtube-dl --list-subs 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--convert-subs 'srt'
Argumentos: String: format extension ass, srt ou best
Formato de saída: padrão .vtt; ou de acordo com a especificação
Adição: grava legendas no formato de arquivo especificado (ex .:)
.srt
. Salva na mesma pasta que o arquivo de vídeo.Omissão: as legendas serão gravadas como
.vtt
Mensagens de Erro: Se não houver legendas disponíveis, uma mensagem INFO será impressa no formato stdout - formato:
[ffmpeg] There aren't any subtitles to convert
Nota: a conversão será executada como uma etapa de pós-processamento no
.vtt
arquivo após o download. Se a execução do ytdl for encerrada inesperadamente, alguns arquivos de legenda podem não ser convertidos (neste caso, execute o comando novamente).--add-metadata
Argumentos: nenhum
Comportamento: grava metadados no arquivo de saída de vídeo.
Nota: não requer um
.info.json
gerado por--write-info-json
--embed-subs
Argumentos: nenhum
Comportamento:
1. grava legendas no arquivo de saída de vídeo;
2. somente para vídeos mp4, webm e mkv
Mensagens de erro: Se não houver legendas disponíveis, uma mensagem INFO será impressa no formato stdout - formato:
[ffmpeg] There aren't any subtitles to embed
Nota: não requer uma
.vtt
gerada por--write-sub
,--write-auto-sub
ou--all-sub
--download-archive '<archive_path>/<channel_name>/<channel_name>.ytdlarchive'
Comportamento: é usado para criar um arquivo de texto contendo links de vídeos baixados anteriormente. Permite pular esses vídeos ao baixar um canal inteiro. Não é necessário ao baixar apenas vídeos únicos.
Argumentos: String: composto do caminho para o seu arquivo de vídeo, diretório nomeado após o canal. O nome do arquivo consiste no nome do canal com
.ytdlarchive
extensão de arquivo. (também pode ser .txt; mas o formato exclusivo permite uma fácil diferenciação)Formato de saída: texto sem formatação; um videoID por linha
Adição:
1. O ytdl lê esse arquivo, ignora e ignora todos os vídeos listados com seu videoID, mesmo que ainda não tenha baixado.
2. adiciona automaticamente o ID do vídeo do último vídeo baixado neste arquivo
Ommission: se existirem arquivos de vídeo e arquivos de metadados, o ytdl fará o download novamente.
--format ''
Argumentos: String recomendada:
bestvideo+bestaudio/best
para garantir a mais alta combinação de qualidade de vídeo e áudio.Adição: controle total sobre a qualidade do vídeo e a qualidade do áudio e suas combinações, bem como as qualidades de fallback
Ommissão: Padrão
youtube-dl will guess it for you by default
- DocumentosNota: Consulte Documentos: Exemplos de seleção de formato
--merge-output-format '<video_format>'
Argumentos: formato de arquivo de vídeo. (por exemplo: mp4, mkv, 3gp, etc.)
Adição: pode especificar o formato do arquivo de vídeo
Omissão: Padrão
youtube-dl will guess it for you by default
- DocumentosNota: Consulte Documentos: Seleção de formato
Comando útil:
Nota: use
youtube-dl --list-formats '<video_url>'
para investigar as qualidades e formatos de vídeo e áudio disponíveis de um vídeo específico (não funciona nos links da lista de reprodução);Ex.:
youtube-dl --list-formats 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--output '<template>'
Argumentos:
1. formato de arquivo de vídeo. (por exemplo: mp4, mkv, 3gp, etc.);
2. Recomendado:
%(upload_date)s_%(id)s_%(title)s.%(ext)s
adição: influencia a convenção de nomenclatura de arquivos de vídeo e todos os arquivos de metadados
Ommissão: Por padrão, o título do vídeo será o nome do arquivo. Modelo padrão:
%(id)s.%(ext)s
será exibido ex .testvideo.mkv
: Nota: Não esqueça o
%
prefixo e os
sufixo (outros sufixos também existem.); Você_
entre os elementos do modelo é apenas um separador e pode ser qualquer outro caractere. ex .%(upload_date)s-%(id)s
: Nota: Consulte Documentos: modelo de saída
'<video_url>'
Argumentos: String: URL para vídeo específico
Mensagem de erro:
1. Se nenhum URL de vídeo enviado, o ytdl não será executado e exibirá a ajuda.
2. Se a mensagem de ERRO enviada por um URL de vídeo inválido for impressa no formato stdout -:
ERROR: u'' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:" ) to search YouTube
Recomendações de armazenamento:
crie um
misc
diretório em seu arquivo de vídeo e armazene todos os vídeos individuais lá.quando você baixar um ou mais vídeos de um canal, crie um diretório dedicado para esse canal. Nesse caso, o nome do canal é
TED Archive
e o nome do diretório seráTED_Archive
. (Substituo preventivamente todos os caracteres de espaço por sublinhados para facilitar a navegação no diretório e ações de E / S de arquivo ao usar scripts bash (ou python)).Respondendo ao seu comentário @leetbacoon
Dos documentos
You can also use a file extension (currently 3gp, aac, flv, m4a, mp3, mp4, ogg, wav, webm are supported) to download the best quality format of a particular file extension served as a single file
best: Select the best quality format represented by a single file with video and audio.
bestvideo: Select the best quality video-only format
Eu acho que quando você selecionar apenas
best
e você especificar um formato de saída youtube envia o formato ele pensa que é o melhor vídeo de áudio + combinação para esse formato. Isso pode estar sujeito a algumas decisões de balanceamento interno do YouTube (especulação).Na minha experiência de uso, tive que especificar especificamente
bestvideo+bestaudio
para obter a mais alta qualidade disponível de vídeo e áudio, respectivamente, e depois combiná-los em um contêiner .mkv.Eu uso
/best
como argumento de fallback apenas para ter certeza.fonte