본문 바로가기
카테고리 없음

pytube 오류 - ImportError: cannot import name 'YouTube' from partially initialized module 'pytube' (most likely due to a circular import)

by 정티그로 2023. 5. 18.

파이썬 라이브러리 중 pytube를 이용하면, 짧고 간단한 코드로 유튜브 영상을 다운로드할 수 있습니다. 프로그램 혹은 광고가 많이 나오는 웹사이트를 굳이 이용할 필요가 없어서 좋습니다. 크롤링과 반복문을 사용한다면, 한 채널에 있는 모든 영상을 다운로드할 수도 있겠다는 생각이 들었습니다. 우선 영상 다운로드가 되는지 확인하기 위해 다음과 같이 코드를 작성하고 실행을 해봤는데, ImportError 가 나오면서 제대로 구동되지 않았습니다.

 

코드

 

에러 메시지는 다음과 같습니다.

ImportError: cannot import name 'YouTube' from partially initialized module 'pytube' (most likely due to a circular import) ('여러분의 작업 경로')

ImportError 에러 발생 원인

ImportError가 발생한 이유는 파이썬 코드 파일 이름이 'pytube.py'였기 때문입니다. 파일 이름을 라이브러리 명과 동일하게 작성할 경우, 순환 참조가 발생해서 이런 오류가 난 것입니다. 

 

해결 방법

파일 이름을 라이브러리 명과 다르게 바꾼 후 코드 실행을 한 결과 제대로 작동했습니다. 파일명이 'pytube.py'가 아닌 다른 이름으로 바꿔야 합니다.

 

from pytube import YouTube
import os


url = '유튜브 주소' #다운로드 받고 싶은 유튜브 주소
yt = YouTube(url)
stream = yt.streams.get_highest_resolution()
stream.download(os.getcwd())