<youtube_dl 에러>
데이터 수집할 일이 있어서 [youtube_dl]을 이용한 음원 다운로드를 진행하는 도중에 에러 메시지를 만나게 됐다.
+ 절대 내가 음악 듣고 싶어서 mp3 파일 다운받아서 공짜로 써야지~~ 하는 것이 아녔음
+ 오디오 데이터 분석을 해보려는 프로젝트를 하던 중에 생긴 일....
에러 메시지를 보자면 아래와 같은 메시지들을 꽤나 만났다.
위와 같은 에러들이 발생하는 이유를 찾아보다가 youtube_dl 캐시 관련 문제일 수 있다는 이야기를 듣게 됐고(구글링이니까 본거네요) 캐시 처리 방법 진행!!
* youtube_dl 캐시 제거
- 첫 번째 안은 아래처럼 직접적인 명령어 투척!!
# jupyter notebook에서는 앞에 ! 붙여서 셀에서 바로 실행시키도록 하면 됨
youtube-dl --rm-cache-dir # 캐시 삭제 명령어
- 두 번째 안은 youtube_dl에서 추출 기능 실행 시에 해당 라이브러리에 내장된 캐시 제거 기능 추가!!
# youtube-dl로 음원 다운로드 전에 관련 메서드 추가
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.cache.remove() # 이 코드를 추가
ydl.download(['다운받을 URL'])
여기까지 진행했을 때, 해당 에러가 발생하지 않는다면 성공!!
하지만 간혹 해당 메시지가 그래도 계속해서 발생하는 경우가 있다.
+ 이 경우는 해당 [유튜브 URL]을 확인해보자!! 저작권 관련 문제일 수 있음
+ 유튜브에서 해당 링크의 영상을 차단했을 때가 있었다. URL을 다시 접속해보면 대부분 그런 경우였다...
+ 그리고는 동일한 영상의 URL이 다른 URL로 대체되어 있는 경우도 있으니 정상적인 URL로 다시 시도하면 OK!!
※ 나에게 주는 팁??
* 음원 URL이 필요해서 youtube_dl을 이용하여 '유튜브 뮤직' 음원의 링크를 수집하는 경우(ex. 유튜브 뮤직에서 앨범이나 플레이 리스트 링크를 youtube_dl에 던져주면 해당 링크 내의 모든 음원에 대한 링크를 반환해줌) yotube_dl은 해당 '유튜브 뮤직'의 링크가 아니라 '유튜브'의 링크를 반환해주기 때문에 이런 일이 많았다.
* 만약 영상이 아닌 음악 오디오만 필요하다면 '유튜브' 링크가 아닌 '유튜브 뮤직' 링크로 처리하는게 더 효율적인 것 같다.
'Python > Error' 카테고리의 다른 글
[Selenium] StaleElementReferenceException 에러 관련 (0) | 2021.06.19 |
---|