Executando verificação de segurança...
8

Download de Videos do Youtube com Python

As vezes me impressiono com a facilidade de coisas que podemos fazer hoje em dia. Lembro-me da dificuldade que tínhamos para poder baixar um vídeo do YouTube, tinha que baixar, instalar programa...

Existe uma biblioteca do python chamada pytube, que permite realizar downloads de vídeos do Youtube, e ainda definir a qualidade do vídeo!! Além de realizar o download somente do áudio, caso queira, achei muito bacana.

O código abaixo é uma simples demonstração do que podemos fazer, mas as possibilidades são inúmeras!!

from pytube import YouTube
import os

# Obtém informações do vídeo em um objeto do tipo Youtube
yt = YouTube("https://www.youtube.com/watch?v=nyet-Sle7Sg")

# Define a pasta onde os vídeos serão baixados
pasta_videos = os.getcwd() + os.sep + "videos"

# Recupera a maior resolução disponível para o video
video = yt.streams.get_highest_resolution()

# Realiza o download do vídeo na pasta definida
video.download(output_path=pasta_videos)
Carregando publicação patrocinada...
1
1

Ele define o separador dos diretórios de acordo com o sistema operacional.
Exemplo:
Window -> c:\pasta_projeto\videos
Linux -> /home/pasta_projeto/videos

Perceba que o Windows usa como separador a barra invertida '\', e o Linux a barra normal '/'

o os.sep pega esse valor de forma automática de acordo com o sistema em que o script esteja sendo executado

2
1
1

Você só precisa salvar em algum arquivo .py, por exemplo
video_downloader.py
Depois disso, é só rodar esse arquivo usando o Python (que deve estar instalado, mas é bem simples de instalar)
Então é só digitar no CMD ou algum terminal bash:
python video_downloader.py
ou
python3 video_downloader.py

Então você teria que colocar a URL do vídeo no código cada vez que quiser baixar algum video.

1
1

Também coloquei para rodar, mas não sei onde ele salvou ou se funcionou. (Sou iniciante kkk) E também fiz uma alteração. Mudei o local onde o link está colocado e coloquei a função input. Essa pasta tem que existir no meu diretorio?

0
1

Na variável pasta_video vc bota o caminho do local que vc quer que ele saia pode ser em string r'caminho' usa o r antes das '' se vc usar windows

1

Muito interessante, bem mais fácil do que caçar algum site na internet que faça isso!

Gostaria de sugerir uma pequena melhoria. Talvez fosse mais prático poder passar o link do vídeo como um argumento de linha de comando ao invés de ter que alterar o código. Ficaria mais ou menos assim:

# ...

import sys

try:
    # o número 2 é porque é o terceiro argumento, afinal os dois primeiros já são ocupados com `python` e o nome do arquivo
    link = sys.argv[2]
except IndexError:
    print(
        "Por favor insira o link do vídeo.\n"
        "Ex: python yt_downloader.py \"http://youtube.com/link-do-vídeo\""
    )
    sys.exit()

# Obtém informações do vídeo em um objeto do tipo Youtube
yt = YouTube(link)

# ...

Claro, ainda precisaria tratar um possível erro caso o link estivesse errado.

1

Obrigado pela contribuição do seu código, é como eu disse, as possibilidades são inúmeras, essa ideia de passar o link como argumento de linha de comando realmente é massa demais

1

Eu não conhecia essa ferramenta. Eu geralmente uso o Youtube-dl para baixar Videos ou fluxo de vídeos de maneira geral, pois ele não serve só para o YouTube, tem também o Yt-dlp que é um Fork do anterior citado, porém sem o bloqueio do YouTube na limitação de taxa de Download.

2

A vantagem que vi, é a praticidade/facilidade em realizar o download. Além também, de ser super customizável, considerando que é programação não há limites!!

1

Gostei da dica, muito obrigado! Muito prático!
Dá até pra desenvolver uma pequena interface que já torna isso ainda mais fácil, gostei da ideia de ferramenta pra fazer.

1
1
1
1

Olá, tudo bem?

Pensando em agregar e complementar. Se não me engano usando dessa maneira o áudio fica no formato MP4, certo?

Podemos converter o áudio para MP3 utilizando o módulo moviepy, ficaria assim:

# importando os módulos
from pytube import YouTube
from moviepy.editor import AudioFileClip

# URL do vídeo que deseja fazer o download do áudio
url = "link"

# Criando instância do objeto YouTube e passando a URL do vídeo
yt = YouTube(url)

# Obtém o melhor áudio disponível
audio = yt.streams.get_audio_only()

# Faz download para o diretório atual
audio_caminho = audio.download()

# Definindo o caminho do áudio convertido
audio_caminho_mp3 = "nome_do_audio.mp3"

# Convertendo o arquivo para MP3
audio_convertido = AudioFileClip(audio_caminho)
audio_convertido.write_audiofile(audio_caminho_mp3)

Espero que esse comentário seja relevante para vocês 😁

E se eu estiver enganado, não pensem 2x em me corrigir, estou começando na área e quero aprender.

Abraços!

1

Muito obrigado por compartilhar sua ideia, não conhecia o moviepy
O que eu testei e funciona também, é você já passar o nome do arquivo já com o sufixo .mp3, na função download(), que o arquivo será salvo já no formato mp3

from pytube import YouTube

# URL do vídeo que deseja fazer o download do áudio
url = "url"

# Criando instância do objeto YouTube e passando a URL do vídeo
yt = YouTube(url)

# Obtém o melhor áudio disponível
audio = yt.streams.get_audio_only()

# Faz download para o diretório atual
audio.download(filename="audio.mp3")
1

Opaaaaaaa e assim vamos aprendendo 😁 Obrigadooo 👊🏼

Dessa maneira fica mais "simples" e prático, gostei 👏🏼

Abraços

1

Olá, tudo bem?

Fiz um teste agora de manhã com a alteração que você indicou audio.download(filename="audio.mp3"), mas o arquivo continua como MP4.

Abraços

1
1
1