프로그래밍/Python
[Python] pytube에서 "KeyError('streamingData')" 오류 발생 문제
채윤아빠
2023. 5. 1. 16:11
문제점 및 증상
pytube를 이용하여 개인적인 유튜브 영상 다운로더를 만들어서 이용하고 있었는데, 얼마전부터 계속하여 "KeyError('streamingData')" 오류가 발생하며 영상 다운로드가 실패하였습니다.
KeyError: 'streamingData'
해결 과정
구글 검색을 통하여 여러 가지를 확인해 보니, pytube 패키지를 새로 설치해보라는 것들이 많아서 "pytube"를 제거하고, "pytube3"를 설치해보고 하였으나 오히려 다른 문제가 발생하였습니다.
...
File "C:\Dev\Python\Python310\lib\urllib\request.py", line 563, in error
return self._call_chain(*args)
File "C:\Dev\Python\Python310\lib\urllib\request.py", line 496, in _call_chain
result = func(*args)
File "C:\Dev\Python\Python310\lib\urllib\request.py", line 643, in http_error_default
urllib.error.HTTPError: HTTP Error 410: Gone
다시 "pytube" 최신 버전을 새로 설치해봐도 동일한 부분에서 계속 문제가 발생하였습니다.
해결 방법
참고자료의 내용과 같이 YouTube 객체 생성자 호출할 때, "use_oauth=True, allow_oauth_cache=True" 매개변수를 추가하면, 문제가 해결됩니다.
clip_url = f'{YOUTUBE_URL_PREFIX}{video_id}'
yt = YouTube(clip_url, use_oauth = True, allow_oauth_cache = True)
위와 같은 매개변수를 입력하고 실행하면 다음과 같은 메시지가 출력됩니다.
Please open https://www.google.com/device and input code XXX-KHP-LTV
Press enter when you have completed this step.
위에 출력된 "XXX-KHP-LTV" 내용을 https://www.google.com/device 에 등록하고난 이후에는 위와 같은 오류가 재발되지 않고 정상적으로 다운로드가 됩니다.
2023-05-07 : 위 방법으로도 근본적으로 해결되는 것 같지는 않습니다.
됬다가 안됬다가 반복하는데, 아무래도 YouTube API 호출에 대한 제한이 걸리는 것 같습니다. 보다 근본적인 해결책을 찾으면 다시 정리하여 올리겠습니다.
참고자료
- "it showing streaming data error ":https://github.com/pytube/pytube/issues/1570
728x90
반응형