본문 바로가기

Python/Error

[youtube_dl] unable to download video data 에러 관련

<youtube_dl 에러>

데이터 수집할 일이 있어서 [youtube_dl]을 이용한 음원 다운로드를 진행하는 도중에 에러 메시지를 만나게 됐다.

 + 절대 내가 음악 듣고 싶어서 mp3 파일 다운받아서 공짜로 써야지~~ 하는 것이 아녔음

 + 오디오 데이터 분석을 해보려는 프로젝트를 하던 중에 생긴 일....

 

 

에러 메시지를 보자면 아래와 같은 메시지들을 꽤나 만났다.

이렇게 나에게 Forbidden을 뱉어낸다니!!
아 왜 사용불가인데....ㅠㅠ

 

 

위와 같은 에러들이 발생하는 이유를 찾아보다가 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