괴발개발/python

pytube를 이용하여 유튜브 영상 다운로드 하기

이태원프리덤# 2022. 10. 24. 04:19
728x90

 

유튜브 영상을 보다보면 다운로드 받고싶은 영상이 있다

다운받아 저작권때문에 상업적 이용은 불가능하겠지만 개인적으로 편집연습이나 소장하고 싶을 떄 pytube를 이용한다

from pytube import YouTube

def download_video_file(video_id):
    try:
        url = "https://www.youtube.com/watch?v=" + video_id
        yt = YouTube(url)
        DOWNLOAD_FOLDER = mp4_original_source_path
        stream = yt.streams.get_highest_resolution()
        stream.download(DOWNLOAD_FOLDER, filename=video_id + '.mp4')
        return True
    except Exception as e:
        print(e)
        return False

간단하게 파이썬 모듈인 pytube를 import 해주고 다운로드 할 수 있는 함수를 만들었다

youtube 영상 url만 따로 만들어서 넣어주면 된다

사진과 같이 정해준 다운로드 폴더에 영상이 저장된다

# pytube이용하여 영상파일 저장
if not download_video_file(video_id):
    print('라이브 실시간등 이슈로 안됨 읽음처리', res)
    continue

영상 다운로드 처리 하면서 마음에 안드는 예외처리를 넣어주면 된다 (라이브 영상, 쇼츠영상 등)

파이튜브는 또한 영상의 정보만을 가져올 수도 있어서 정말 편한 것 같다

def get_video_info(video_id):
    url = "https://www.youtube.com/watch?v="+video_id
    yt = YouTube(url)
    print("제목 : ", yt.title)
    print("길이 : ", yt.length)
    print("파일명 : ", video_id + '.mp4')
    # print("게시날짜 : ", yt.publish_date)
    # print("조회수 : ", yt.views)
    # print("키워드 : ", yt.keywords)
    # print("레이팅 : ", yt.rating)
    # print("썸네일 : ", yt.thumbnail_url)
    return yt.title, yt.length, video_id+'.mp4'

다운로드 할 필요없이 유튜브 영상의 url 만 알고 있으면 제목, 길이, 파일명, 조회수, 썸네일 등 많은 정보를 가져올 수 있다

 

pytube 말고도 유튜브에서 직접 제공하는 api를 이용해도 되는데 할당량과 속도문제로 pytube를 이용하고 있다

더 상세한 정보가 필요할때 api를 이용해봐야 겠다

+ 간단하게 작성해봤습니다 궁금하신점 있으시면 댓글로 남겨주세요~

728x90