유튜브의 JS 가 업데이트 되면서 Pytube에 다음과 같은 에러가 발생하게 되었습니다.
AttributeError: 'NoneType' object has no attribute 'span'
한동안 해결이 안되었는데, 이번에 공식 깃헙에 해결 bug fix가 올라와 적용해 보니 잘 동잡합니다.
아직 공식적으로 업데이트가 되지 않아 임시로 해결 방안을 올립니다.
반응형
먼저 pytube 설치 디렉토리를 찾아야 합니다.
가상환경(venv)을 설치해서 사용하는 경우는
{vnev 경로}\lib\site-packages\pytube
가상환경(venv) 미설치 사용의 경우는
C:\Users\{사용자ID}\AppData\Local\Programs\Python\Python38\Lib\site-packages\pytube
리눅스의 경우 가상환경 사용시는 같습니다. 가상환경 미설치시의 경우는
{자신의 홈디렉토리}/.local/lib/python2.7/site-packages/pytube
해당 디렉토리로 이동하여 phaser.py와 chiper.py 두 파일을 다음과 같이 수정합니다.
chiper.py의 268번 라인을 다음과 같이 수정합니다.
# r'a\.[A-Z]&&\(b=a\.get\("n"\)\)&&\(b=([^(]+)\(b\)', // 268번라인 주석처리
r'([A-Za-z]{3})=function\(a\){var b=a\.split\(""\)\,' // 새로 입력
phaser.py
#func_regex = re.compile(r"function\([^)]*\)") //152번 라인 주석처리
func_regex = re.compile(r"function\(.*?\)") //새로 입력
위와 같이 수정하면 정상 동작 합니다.
이글은 pytube가 업데이트 되면 닫습니다.
댓글