유튜브에는 다양한 동영상들이 모여있습니다. 여기에는 음악, 교육, 요리등 다양한 분야에서 활동하는 전문가, 비전문가들이 영상을 제작하고 있습니다. 전 세계의 많은 사람들이 유튜브라는 동영상 플랫폼을 이용해 시간을 보내게 됩니다. 기본적으로 유튜브는 무료로 이용할 수 있습니다. 하지만, 인터넷이 안되는 경우 동영상을 보는데 제한이 발생할 수 있습니다. 특히, 비행기에서는 인터넷이 안되기 때문에 온라인으로 유튜브를 사용할 수 없습니다. 이런 경우, 동영상을 다운로드하면 도움이 되겠죠. 기본적으로 유튜브 프리미엄에서는 동영상 다운로드를 지원하고 있습니다. 그 밖에도 웹 프로그램을 지원하는 사이트가 있으니 적당한 것을 활용할 수도 있습니다. 여기서는 파이썬을 이용한 동영상 다운로드 코드 예시를 알아봅니다.
pytube – 파이썬 유튜브 동영상 다운로드 라이브러리
파이썬은 객체지향프로그래밍 언어로 전 세계의 많은 사람들이 활용하는 언어입니다. 다양한 장점이 존재하죠. 파이썬을 이용해 원하는 기능을 구현하는 방법은 당연히 로직을 구성하고 코드를 잘 짜야만 합니다. 다만, 이 과정에서 많은 시간이 걸릴 수 있습니다. 이미 만들어진 코드들을 가지고 와서 사용할 수 있다면 좋겠는데 말이죠. 이런 경우, 파이썬 라이브러리 혹은 프레임워크를 이용할 수 있습니다. 파이썬을 이용해 유튜브 동영상 다운로드 기능을 구현한 라이브러리 이름이 바로 pytube입니다.
라이브러리르 이용하는 방법은 간단합니다. pip을 이용해 해당 라이브러리를 설치합니다. 그리고 import를 이용해 라이브러리를 불러와 원하는 기능을 사용하면 됩니다. 라이브러리에 포함되어 있는 클래스, 함수 및 설정 방법에 대해서는 공식 문서를 참고하는 것이 도움이 될 수 있습니다. 단지, 영어로 제작된 공식 문서를 확인하는 것이 쉬운일은 아니기 때문에 어려움을 겪을 수도 있습니다.
pytube의 경우, 유튜브 동영상 / 음악 파일을 다운로드하는 기능이며 음질 혹은 화질을 설정할 수 있습니다. 즉, 크게 복잡한 기능이 구현된 것은 아니며, 사용자가 원하는 것도 간단한 기능이기 때문에 쉽게 활용할 수 있을 것입니다. 또한, 공식 문서에서 확인할 내용 또한 가볍게 찾아볼 수 있을 것입니다.
코드 예시
# call lib from tkinter import * from tkinter import messagebox from pytube import YouTube import glob import os.path # set root = Tk() root.title("converter") root.geometry("500x300") root.resizable(False, False) #convert def convert(): #유튜브 전용 인스턴스 생성 par = lnk.get() print(par) yt = YouTube(par) print("start!") if(Radiovar.get() == 1): print("type: mp4") yt.streams.filter().all() yt.streams.filter().first().download() else: print("type: mp3") yt.streams.filter(only_audio=True).all() yt.streams.filter(only_audio=True).first().download() print("success") files = glob.glob("*.mp4") for x in files: if not os.path.isdir(x): filename = os.path.splitext(x) try: os.rename(x,filename[0] + '.mp3') except: pass messagebox.showinfo("success","converted!") #메시지 박스를 띄운다. #main lbl = Label(root, text="YouTube Converter!") lbl.pack() lnk = Entry(root) lnk.pack(fill="x") st = StringVar() Radiovar = IntVar() Radio_button1 = Radiobutton(text="mp4",variable=Radiovar,value=1) Radio_button2 = Radiobutton(text="mp3(=default)",variable=Radiovar,value=2) Radio_button1.pack() Radio_button2.pack() place = Label(root, text="\n") place.pack() btn = Button(root, text="convert",command=convert) btn.pack() root.mainloop()
위 내용은 pytube를 이용한 파이썬 예시 코드입니다. 잘 활용하면 다양한 프로그램의 기초가 될 수 있을 것입니다.