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.
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