파이썬(Python)

[ 유튜브 다운로드 ] 간단한 유튜브 동영상 다운로드 프로그램 만들기

카루루1007 2023. 12. 10. 16:40
728x90
반응형
SMALL

[ 들어가며 ]

 

유튜브 동영상을 시청하다보면

소장하고 싶은 동영상이 있습니다.

물론 쉽게 구할 수 있는

유튜브 동영상 다운로드 프로그램이 많지만,

파이썬을 이용하여

간단하게 

유튜브 동영상 다운로드 프로그램

만들어 보겠습니다.

 

[ 전체 코드 ]

반응형

전체 코드를 먼저 보고

간단하게 설명을 하겠습니다.

import tkinter as tk
import tkinter.filedialog as fd
from pytube import YouTube

root = tk.Tk()
root.resizable(width=False, height=False)

label = tk.Label(root, text="URL 입력:")
label.pack(side="left", padx=5, pady=5)
entry = tk.Entry(root, width=50)
entry.pack(side="left", padx=5, pady=5)

button = tk.Button(root, text="다운로드")
button.pack(side="left", padx=5, pady=5)

exit_button = tk.Button(root, text="종료")
exit_button.pack(side="left", padx=5, pady=5)

def download():
    try:
        url = entry.get()

        video = YouTube(url)

        title = video.title

        filename = fd.asksaveasfilename(initialfile=title, defaultextension=".mp4")

        best_stream = video.streams.get_highest_resolution()
        best_stream.download(filename)

        print("다운로드 완료:", url)
    except Exception as e:
        print("다운로드 오류:", str(e))

button.config(command=download)

def exit():
    root.destroy()

exit_button.config(command=exit)

root.mainloop()

 

[ 코드 설명 ]

728x90
import tkinter as tk
import tkinter.filedialog as fd

from pytube import YouTube

tkinter사용자 인터페이스를 만들기 위해 사용했으며,

pytube유튜브 동영상을 다운로드 하기 위해 사용했습니다.

 

root.resizable(width=False, height=False)

창 크기를 조절하지 못하도록 하는 코드입니다.

※ tkinter 창크기 조절은 여기를 참고하세요

 

label = tk.Label(root, text="URL 입력:")
label.pack(side="left", padx=5, pady=5)

entry = tk.Entry(root, width=50)
entry.pack(side="left", padx=5, pady=5)

button = tk.Button(root, text="다운로드")
button.pack(side="left", padx=5, pady=5)

exit_button = tk.Button(root, text="종료")
exit_button.pack(side="left", padx=5, pady=5)

이 부분은 tkinter를 사용해

인터페이스를 만든 부분입니다.

 

url = entry.get()

entry에 입력된 유튜브 URL을 얻어와

url 이라는 변수에 넣어줍니다.

 

video = YouTube(url):

YouTube 동영상 객체를 생성합니다.

 

title = video.title:

동영상의 제목을 가져옵니다.

filename = fd.asksaveasfilename(initialfile=title, defaultextension=".mp4"):

파일 선택 대화상자를 표시하고 파일 이름을 가져옵니다.

initialfile 옵션으로 제목을 설정하고, defaultextension 옵션으로 mp4 파일 확장자를 설정합니다.

 

best_stream = video.streams.get_highest_resolution():

최고 해상도 스트림을 가져옵니다.

 

best_stream.download(filename):

스트림을 다운로드하여 지정된 파일 이름으로 저장합니다.

 

간단하게 소스코드만 소개하기 위해 작성해서

설명이 조금 부족하지만,

pytube를 사용하면

간단한한 유튜브 다운로드 프로그램을 만들 수 있습니다.

728x90
반응형
LIST