728x90
반응형
문제점 및 증상
"pytube"로 영상 다운로드 시, 다음과 같은 오류가 발생하며 영상 다운로드가 실패하는 문제가 얼마전부터 발생하기 시작했습니다.
YouTube('https://youtu.be/9bZkp7q19f0').streams.first()
Traceback (most recent call last):
File "<pyshell#1>", line 1, in
YouTube('https://youtu.be/9bZkp7q19f0').streams.first()
File "C:\Dev\Python\Python310\lib\site-packages\pytube\__main__.py", line 296, in streams
return StreamQuery(self.fmt_streams)
File "C:\Dev\Python\Python310\lib\site-packages\pytube\__main__.py", line 181, in fmt_streams
extract.apply_signature(stream_manifest, self.vid_info, self.js)
File "C:\Dev\Python\Python310\lib\site-packages\pytube\extract.py", line 409, in apply_signature
cipher = Cipher(js=js)
File "C:\Dev\Python\Python310\lib\site-packages\pytube\cipher.py", line 43, in __init__
self.throttling_plan = get_throttling_plan(js)
File "C:\Dev\Python\Python310\lib\site-packages\pytube\cipher.py", line 411, in get_throttling_plan
transform_plan_raw = find_object_from_startpoint(raw_code, match.span()[1] - 1)
AttributeError: 'NoneType' object has no attribute 'span'
현재 제가 사용하는 "pytube" 버전은 "12.1.2" 였습니다.
해결 방법
아마도 새로운 공식 버전이 배포되면 해결되리라 예상하지만, 일단은 다음과 같이 "pytube"가 설치된 폴더에서 "cipher.py" 파일을 열어서 411줄을 다음과 같이 수정하면 오류 없이 유튜브 영상의 다운로드가 가능합니다.
# transform_plan_raw = find_object_from_startpoint(raw_code, match.span()[1] - 1) # original
transform_plan_raw = js # fix
--
참고자료
"Pytube issue: AttributeError 'NoneType' object has no attribute 'span'":https://github.com/pytube/pytube/issues/1499
'프로그래밍 > Python' 카테고리의 다른 글
[Python] PNA Network Analyzer에서 현재 화면 데이터 다루기 (0) | 2023.02.20 |
---|---|
[Python] RKNN_toolkit2를 이용한 onnx -> rknn 모델 변환 소스 (0) | 2023.02.17 |
[Python] 라즈베리파이 GPIO 제어하기 - 기초 (0) | 2023.01.23 |
[Python] 엑셀 파일의 특정 영역의 자료들 수정하기 (0) | 2023.01.18 |
[Python] 엑셀 파일을 열고, 배열 데이터 입력하기 (0) | 2023.01.17 |