Como Baixar e Converter Vídeos do YouTube com Python: Script Grátis com Suporte para MP3 e MP4

Como Baixar e Converter Vídeos do YouTube com Python: Script Grátis com Suporte para MP3 e MP4

Hoje em dia, com o volume de conteúdo no YouTube, às vezes queremos baixar vídeos ou apenas o áudio para ouvir offline. Embora existam várias ferramentas online para isso, muitos preferem uma solução personalizada e que garanta mais privacidade e controle. Se você é desenvolvedor ou entusiasta de programação, que tal um script em Python para baixar vídeos do YouTube e converter para MP3 ou MP4 automaticamente?

Neste post, vou compartilhar com vocês um script Python simples que faz o download de vídeos do YouTube, além de converter o áudio para MP3 caso seja necessário. O script lê as URLs diretamente de um arquivo CSV e salva os arquivos na pasta output.

Screencast com as últimas funcionalidades adicionadas

Principais Funcionalidades do Script:

  • Download de Vídeos do YouTube em MP4: Basta passar a URL do vídeo e o script baixa automaticamente.
  • Conversão para MP3: Se o formato desejado for MP3, o vídeo é baixado e convertido para áudio.
  • Leitura de URLs e Formatos de um Arquivo CSV: Com isso, você pode baixar vários vídeos ou músicas de uma vez só.
  • Barra de Progresso: Acompanha o progresso do download e da conversão para MP3.
Exemplo do script em funcionamento

Como Funciona

O script utiliza a biblioteca yt-dlp, uma versão atualizada e mais eficiente do famoso youtube-dl, para realizar os downloads. Para a conversão de vídeos para MP3, usamos a poderosa biblioteca moviepy, que facilita a manipulação de arquivos de vídeo e áudio em Python.

Requisitos

Antes de começar, você precisará ter instalado:

  • Python 3.6 ou superior
  • FFmpeg: Ferramenta necessária para converter os vídeos para MP3.
  • Bibliotecas Python como yt-dlp, moviepy e tqdm.

Como Usar o Script

Instale as Dependências

Primeiro, você precisará clonar o repositório com o código e instalar as dependências. Basta rodar o seguinte comando no terminal:

git clone https://github.com/seu-usuario/youtube-downloader.git
cd youtube-downloader
pip install -r requirements.txt

Crie um Arquivo CSV

O arquivo CSV deve conter as URLs dos vídeos do YouTube e o formato desejado para cada um. Por exemplo:

URL_DO_VIDEO,FORMATO_DESEJADO
https://www.youtube.com/watch?v=WhUf7t8Pt_w,mp3
https://www.youtube.com/watch?v=WhUf7t8Pt_w,mp4

Execute o Script

Com tudo configurado, basta executar o script com o comando:

python download_youtube.py

O script vai baixar todos os vídeos listados no arquivo CSV e, caso o formato seja mp3, realizará a conversão automaticamente.

Por que Usar Este Script?

  1. Privacidade: Diferente de ferramentas online, você não precisa compartilhar suas URLs ou downloads com terceiros.
  2. Flexibilidade: O script pode ser modificado conforme as suas necessidades. Quer baixar vídeos em outro formato? Basta ajustar o código!
  3. Automação: Adicione várias URLs ao arquivo CSV e o script faz o trabalho para você, sem precisar de intervenções manuais.

Código Completo

Aqui está uma amostra do código que você poderá encontrar no repositório:

import os
import csv
from yt_dlp import YoutubeDL
from moviepy.editor import AudioFileClip
from tqdm import tqdm

OUTPUT_FOLDER = 'output'
os.makedirs(OUTPUT_FOLDER, exist_ok=True)

def download_video(url, format_type):
    ydl_opts = {}
    if format_type == 'mp3':
        ydl_opts = {
            'format': 'bestaudio/best',
            'outtmpl': f'{OUTPUT_FOLDER}/%(title)s.%(ext)s',
            'postprocessors': [{
                'key': 'FFmpegExtractAudio',
                'preferredcodec': 'mp3',
                'preferredquality': '192',
            }],
        }
    elif format_type == 'mp4':
        ydl_opts = {
            'format': 'best',
            'outtmpl': f'{OUTPUT_FOLDER}/%(title)s.%(ext)s',
        }

    try:
        with YoutubeDL(ydl_opts) as ydl:
            ydl.download([url])
        print(f"Download completo: {url}")
    except Exception as e:
        print(f"Erro ao baixar {url}: {e}")

def process_csv(file_path):
    with open(file_path, newline='') as csvfile:
        reader = csv.reader(csvfile)
        for row in reader:
            if len(row) == 2:
                url, format_type = row
                print(f"Baixando {url} no formato {format_type}")
                download_video(url.strip(), format_type.strip())

csv_file_path = 'videos.csv'

if __name__ == '__main__':
    process_csv(csv_file_path)

Considerações Finais

Com este script, você tem total controle sobre o que baixa e como converte. O projeto é um ponto de partida excelente se você deseja personalizar ainda mais o processo de download e conversão de vídeos.

Caso tenha interesse em conferir ou modificar o código, você pode acessar o repositório do projeto no GitHub aqui.

Experimente, adapte o script para suas necessidades, e comece a baixar seus vídeos favoritos do YouTube agora mesmo!


Esse post foi estruturado para promover o uso do script, destacando suas funcionalidades e como ele pode ser útil para quem busca uma solução de download personalizada para vídeos do YouTube.

Repositório do projeto

GitHub - jaccon/PytubeDownloader: Python Script to Download and convert any Youtube Video
Python Script to Download and convert any Youtube Video - GitHub - jaccon/PytubeDownloader: Python Script to Download and convert any Youtube Video