소연의_개발일지
article thumbnail

이런 모듈이 있다니 역시 파이썬이다. 없는게 없다..!

모듈에 대해 간단히 설명하자면, 

유튜브 비디오를 다운로드 할 수 있는 python 모듈이다. 무료이며 가볍고 라이브러리로 제공하기 때문에

누구나 이 모듈을 사용하여 영상을 다운로드 할 수 있다.

하지만 파이썬 자체에는 깔려있지 않기 때문에 직접 설치해야 한다.

 

 

Pytube 모듈 설치

pip install pytube

콘솔에 작성하여 설치한다.

인터프리터에 검색하여 설치해도 된다.

 

전체 코드

from pytube import YouTube
import os

def downloadYouTube(videourl, path):

    yt = YouTube(videourl)
    yt = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first()
    if not os.path.exists(path):
        os.makedirs(path)
    yt.download(path)

video_path = 'https://youtu.be/gvXsmI3Gdq8'
downloadYouTube(video_path, 'videos')

비디오 하나만 다운받을 때 사용하는 코드

 

난 최근 나온 NCT U의 배기진 영상을 다운받아 보겠다.

위 링크도 배기진 링크이다. 노래가 아주 중독적이다.

시간은 3초 ~ 5초 정도 걸린 것 같다.

같은 경로 안에 뮤비가 잘 다운로드 되었다. 이 영상은 opencv와 mediapipe로 landmark 인식공부하는데 쓸 것이다 ㅎㅎ

실행도 아주 잘 된다.

 

아래는 여러 비디오를 다운받을 때 사용하는 코드이다. 

 

 

비디오 여러 개 다운받을 때 사용하는 코드

from pytube import YouTube 
  
# 저장할 경로 설정
SAVE_PATH = "video" # 경로 설정 
  
# 다운로드할 유튜브 링크 리스트에 담기
link=["https://www.youtube.com/watch?v=xWOoBJUqlbI", 
    "https://www.youtube.com/watch?v=xWOoBJUqlbI"
    ]
 
# for문 돌려서 다운로드받기
for i in link: 
    try:    
        # Youtube객채 생성
        yt = YouTube(i) 
    except: 
          
        # 예외처리
        print("Connection Error") 
      
    # 모든 파일 mp4 저장으로 설정
    mp4files = yt.filter('mp4') 
  
    # get()메서드로 해상도, 비디오 확장자 받기
    d_video = yt.get(mp4files[-1].extension,mp4files[-1].resolution) 
    try: 
        # 비디오 다운받기
        d_video.download(SAVE_PATH) 
    except: 
        print("에러 발생!") 
print('다운 완료!')

 

txt파일 안에 비디오 링크 담고 한번에 다운로드하기

links_file.txt는 같은 경로 안에 존재해야 하며, 한줄에 한 링크로 작성해야 한다.

from pytube import YouTube 
  
# 저장할 경로 설정
SAVE_PATH = "video" # 경로 설정 
  
# 다운로드할 유튜브 링크 리스트에 담기
link= open('links_file.txt', 'r')
 
# for문 돌려서 다운로드받기
for i in link: 
    try:    
        # Youtube객채 생성
        yt = YouTube(i) 
    except: 
          
        # 예외처리
        print("Connection Error") 
      
    # 모든 파일 mp4 저장으로 설정
    mp4files = yt.filter('mp4') 
  
    # get()메서드로 해상도, 비디오 확장자 받기
    d_video = yt.get(mp4files[-1].extension,mp4files[-1].resolution) 
    try: 
        # 비디오 다운받기
        d_video.download(SAVE_PATH) 
    except: 
        print("에러 발생!") 
print('다운 완료!')

 

 

 

파일을 실행할 때 인터넷에 연결되어 있는지 꼭 확인해 보자.

그럼 끝!~~

 

pytube 공식문서: https://pytube.io/en/latest/

 

pytube — pytube 15.0.0 documentation

© Copyright Revision a32fff39.

pytube.io

 

 

 

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!