파이썬으로 유튜브 동영상 쉽게 다운로드하기

0

유튜브에서 마음에 드는 영상을 다운로드하고 싶을 때가 많습니다. 특히 유튜브 Shorts와 같은 짧고 임팩트 있는 영상을 저장해두고 싶은 순간이 있죠. 이 글에서는 파이썬을 이용하여 유튜브 영상을 간단하게 다운로드할 수 있는 방법을 소개합니다. 복잡한 유료 도구 대신, 파이썬의 pytube 라이브러리를 사용해보세요. 쉽고 간편한 코드 몇 줄로 원하는 영상을 손쉽게 다운로드할 수 있습니다.

pexels

파이썬으로 유튜브 동영상 다운로드: 시작하기

먼저, 유튜브에서 영상을 다운로드하는 데 필요한 도구인 `pytube`를 설치해야 합니다. 설치는 간단합니다. 터미널에서 아래의 명령어를 입력하면 됩니다:

pip install pytube

설치가 완료되었다면, 이제 영상을 다운로드할 준비가 완료되었습니다.

단일 유튜브 영상 다운로드하기

단일 유튜브 영상을 다운로드하는 방법부터 시작해봅시다. 아래의 코드를 사용하면 원하는 영상을 다운로드할 수 있습니다.

from pytube import YouTube

def download_video(video_url):
    yt = YouTube(video_url)
    yt.streams.filter(adaptive=True, file_extension='mp4').first().download()

if __name__ == '__main__':
    video_url = 'https://www.youtube.com/watch?v=VIDEO_ID_HERE'
    download_video(video_url)

이 코드를 실행하면, `video_url` 변수에 지정된 유튜브 영상이 자동으로 다운로드됩니다. 파일 형식은 MP4로, 최적의 품질로 저장됩니다.

다양한 다운로드 옵션 활용하기

이제 다양한 해상도나 파일 형식으로 영상을 다운로드하고 싶은 경우에 대해 알아보겠습니다. 예를 들어, 720p 해상도의 MP4 영상을 받고 싶다면, 아래 코드를 사용하면 됩니다:

from pytube import YouTube

def download_video(video_url):
    yt = YouTube(video_url)
    yt.streams.filter(res='720p', file_extension='mp4').first().download()

if __name__ == '__main__':
    video_url = 'https://www.youtube.com/watch?v=VIDEO_ID_HERE'
    download_video(video_url)

이렇게 코드를 응용하면, 사용자의 필요에 맞는 다양한 형식으로 영상을 저장할 수 있습니다.

유튜브 채널의 모든 Shorts 영상 다운로드하기

유튜브 Shorts는 짧은 길이의 영상으로, 많은 분들이 관심을 갖고 있습니다. 특정 유튜브 채널의 모든 Shorts 영상을 한번에 다운로드하고 싶을 때는 어떻게 해야 할까요? 아래의 코드를 사용하면 손쉽게 가능합니다:

import os
import google.auth
from googleapiclient.discovery import build
from pytube import YouTube

def download_shorts(channel_id):
    credentials, project = google.auth.default()
    youtube = build('youtube', 'v3', credentials=credentials)
    channel_response = youtube.channels().list(part='contentDetails', id=channel_id).execute()
    uploads_playlist_id = channel_response['items'][0]['contentDetails']['relatedPlaylists']['uploads']

    playlistitems_request = youtube.playlistItems().list(part='snippet', playlistId=uploads_playlist_id, maxResults=50)
    while playlistitems_request is not None:
        playlistitems_response = playlistitems_request.execute()
        for playlist_item in playlistitems_response['items']:
            video_id = playlist_item['snippet']['resourceId']['videoId']
            video_response = youtube.videos().list(part='snippet', id=video_id).execute()
            video_tags = video_response['items'][0]['snippet']['tags']
            if 'Shorts' in video_tags:
                print(f'Downloading {video_id}')
                video_url = f'https://www.youtube.com/watch?v={video_id}'
                yt = YouTube(video_url)
                yt.streams.filter(adaptive=True, file_extension='mp4').first().download()
        playlistitems_request = youtube.playlistItems().list_next(playlistitems_request, playlistitems_response)

if __name__ == '__main__':
    channel_id = 'INSERT_YOUTUBE_CHANNEL_ID_HERE'
    download_shorts(channel_id)

이 코드를 실행하면, 입력된 채널 ID에 속한 모든 Shorts 영상이 다운로드됩니다. 이 방법을 통해 유튜브 API와 pytube 라이브러리를 결합하여 더욱 효율적으로 영상을 관리할 수 있습니다.

저작권과 라이센스에 대한 주의사항

유튜브 영상을 다운로드할 때에는 저작권 문제를 반드시 고려해야 합니다. 다운로드한 영상을 개인 용도로만 사용하고, 상업적 목적으로는 사용하지 않도록 주의하세요. 또한, 다운로드한 영상을 편집하거나 재배포할 때에는 원저작자의 허락을 받아야 합니다.

결론

파이썬을 사용하여 유튜브 영상을 다운로드하는 다양한 방법을 알아보았습니다. 이 방법을 활용하면 추가적인 비용 없이 원하는 영상을 저장하고 관리할 수 있습니다. 이제 pytube와 YouTube API를 활용하여 더욱 풍부한 콘텐츠를 즐겨보세요.

Leave a Reply