Я пытаюсь создать программу, которая берет плейлист YT и воспроизводит весь его контент.
Я установил все компоненты, необходимые для работы pafy с python3. Все, что я пробовал, работает так, как ожидалось, кроме приведенной ниже части кода.
plurl = "https://www.youtube.com/playlist?list=PL634F2B56B8C346A2"
playlist = pafy.get_playlist(plurl)
url = playlist['items'][21]['pafy'].getbest().url
video = pafy.new(url)
При вызове pafy.new()
выдает ошибку из-за слишком длинного URL:
Need 11 character video id or the URL of the video. Got https://r2---sn-bavc5aoxu-nv4l.googlevideo.com/videoplayback?ms=au%2Crdu&sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&mv=m&mt=1554899146&requiressl=yes&ip=37.157.173.53&pl=19&id=o-AGQZkyoEvykUGae7O4v_Ycmuj4jJBYdgafcfLBQ5S4Dd&mn=sn-bavc5aoxu-nv4l%2Csn-nv47lnsr&mm=31%2C29&source=youtube&lmt=1387649403290510&ei=POGtXJzdIo_ugAeEiL_wAQ&c=WEB&key=yt6&mime=video%2Fmp4&gir=yes&itag=18&clen=5461830&fvip=2&expire=1554920860&ratebypass=yes&dur=206.100&initcwndbps=1573750&ipbits=0&signature=AAA8B36CD3B402F587F874956595ACB928806C4F.D36C0A79E7F1727DB872425E696DBFC550AA7DF6
Есть ли способ получить нормальный URL-адрес или идентификатор видео?
Видеоид также доступен в объекте URL. Вы можете использовать
dir(<object>)
чтобы увидеть, какие свойства доступны.
id = playlist['items'][2]['pafy'].videoid
video = pafy.new('https://thewikihow.com/video_'+id)
используйте попробуй поймай перед использованием pafy.new , так как некоторые видео могут быть недоступны в этом регионе.