У меня была эта ошибка при запуске моего скрипта Pytube:
signature = cipher.get_signature(js, stream['s'])
KeyError: 's'
Мой код такой:
url = 'https://www.youtube.com/watch?v='
train_List = []
i = 0
while i < len(my_list):
if len(my_list[i]) > 6:
urls = url + my_list[i]
train_List.append(urls)
yt=YouTube(train_List[i])
t=yt.streams.filter(only_audio=True).all()
t[0].download('/pathtofolder')
i+=1
Я также пытался:
t=yt.streams.filter(file_extension='mp4').all()
Я изменил файлы cipher.py и helper.py в соответствии с этой рекомендацией: https://github.com/nficano/pytube/issues/353#issuecomment-455116197
, но это не устранило проблему.После внесения изменений я получил ошибку, отмеченную выше.
Далее я выполнил команду "pip install pytube --upgrade" для некоторых других рекомендаций.Все еще получаю KeyError после того, как он загружает несколько аудио файлов.
Я также реализовал это в mixins.py, для проблем с github:
if ('signature=' in url) or ('&sig=' in url) or ('&lsig=' in url):
, но теперь он зависает после 3 загрузок.
У кого-нибудь есть исправление для этого?