안녕하세요.
오늘의 파이썬 코딩 독학 주제는 실생활에 유용할만한 프로그램 만들기 입니다.
아래는 소스코드 전문이며
오늘 만들어볼 프로그램은
유튜브에서 음원을 추출하는 프로그램입니다.
#라이브러리 불러오기
import youtube_dl
from tkinter import* #라이브러리에 포함된 모든 모듈을 임포트 할 때 * 사용 (tkinter에 포함된 모든 모듈을 사용)
#main 라는 변수에 TK()생성자로 윈도우 객체(첫글자는 대문자로 써야함)를 저장
main = Tk()
main.title("음원착즙기") #제목 설정
main.resizable(False, False) #창 크기 고정
main.configure(background='pink') #배경색
main.geometry("400x110") #창 크기 설정
def Extract(): #Extract 라는 함수를 정의
result=url.get() #result라는 변수에 url로 입력받은 값 입력
#유튜브 영상을 추출
ydl_opts = { #youtube_dl 라이브러리 설정
'format': 'bestaudio/best', #최고 품질로 추출
'postprocessors': [{
'key': 'FFmpegExtractAudio', #영상을 오디오 파일로 추출
'preferredcodec': 'mp3', #오디오 파일 포맷을 mp3파일로 설정
'preferredquality': '192', #오디오 품질 설정 192K
}],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([result]) #result에 입력받은 주소의 영상을 다운로드
#텍스트 설정
label = Label(main, text="주소를 입력해주세요.", font=('NanumGothic', '20', 'bold'), background='pink')
label.pack()
#입력칸 설정
url = Entry(main, width=50) #값을 입력받는 창을 url이라는 변수로 지정.
url.bind("<Return>", Extract) #bind는 특정 이벤트가 발생하면 지정된 기능이 실행되도록 해줌. <Return>은 '엔터' 치는 이벤트를 인식
url.pack() #해당 위젯을 상위 위젯에 모두 패킹하여 불필요한 공간을 없앰
#버튼 클릭시 함수가 실행되도록 설정
button = Button(main, text="추출하기", font=('NanumGothic', '15', 'bold'), command=Extract) #버튼 설정
button.pack()
#윈도우 창 유지(계속 갱신시킴)
main.mainloop()
1. 구성요소
(1) 라이브러리
라이브러리에 대해 정리된 게시글의 링크를 걸어두겠습니다.
필수적이므로 꼭 확인하신 후 진행해주세요
2019/12/21 - [코딩/파이썬] - 비전공자의 코딩 독학 - 파이썬[6] 라이브러리 설치
(a) youtube_dl
유튜브에서 음원을 추출하기 위한 라이브러리
(b) tkinter
GUI를 만들기 위한 라이브러리
(c) ffmpeg
webm 파일을 mp3 파일로 변환화기 위한 라이브러리
위의 3가지 라이브러리들을 미리 설치하시고 소스코드를 실행하셔야 음원을 추출할 수 있습니다.
(2) GUI
그래픽 유저 인터페이스의 줄임말. 그래픽을 통해 작업할 수 있는 환경을 뜻합니다.
(3) 객체
큰 규모의 데이터(속성+함수)를 의미하며 변수에 대입하여 생성할 수 있습니다.
(4) 변수
변수는 데이터를 담을 수 있는 상자라고 생각하시면 됩니다.
(5) false
컴퓨터는 이진법으로 동작하며 1을 True로 인식하고 0을 false로 인식합니다.
(6) def
뒤에오는 단어로 함수를 정의해주는 함수입니다.
2. 코드 알아보기
(1) Label()
텍스트를 출력해주는 함수
label = Label(main, text="주소를 입력해주세요.", font=('NanumGothic', '20', 'bold'), background='pink')
변수 = Label(상위객체, text="출력하고자 하는 텍스트", font=('폰트 선택', '글자크기', '추가옵션'), background='배경색')
(2) Entry()
입력칸을 만들어주는 함수
url = Entry(main, width=50)
변수 = Entry(상위객체, width=빈칸 넓이)
(3) Button()
버튼을 만들어주는 함수
button = Button(main, text="추출하기", font=('NanumGothic', '15', 'bold'), command=Extract)
변수 = Button(상위객체, text="버튼에 나타내고 싶은 텍스트", font=('폰트 선택', '글자크기', '추가옵션'), command=버튼을 눌렀을때 실행할 함수)
3. 결과 확인
작성한 소스코드를 실행시키면 아래와 같은 창이 뜹니다.
빈칸에 원하는 영상의 주소를 입력하고 추출하기 버튼을 누르면
아래 사진과 같이 작업이 진행됩니다.
위 사진에서 붉은 박스로 체크해둔 부분에 대해 설명드리자면
입력한 주소에서 영상을 .webm확장자로 추출한 후
.mp3확장자로 변환한 뒤 .webm확장자의 파일은 삭제합니다.
원하는 영상의 음원이 추출된것을 확인하셨나요?
이상으로 예제풀이를 마치겠습니다.
파이썬 코딩 독학은 좋은 예제를 만날때마다 업로드 하도록 하겠습니다.
저도 함께 배워가는 입장이어서 좋은 예제를 구상하고 분석하고 공부해야하기 때문에
업로드가 다소 늦을 수도 있으니 양해부탁드리겠습니다.
'코딩 > 파이썬' 카테고리의 다른 글
비전공자의 코딩 독학 - 파이썬[9] pyinstaller 설치 및 사용방법 (0) | 2019.12.24 |
---|---|
비전공자의 코딩 독학 - 파이썬[8] 아나콘다 설치 및 사용방법 (0) | 2019.12.22 |
비전공자의 코딩 독학 - 파이썬[6] 라이브러리 설치 (0) | 2019.12.21 |
비전공자의 코딩 독학 - 파이썬[5] 값 입력받기 예제 (0) | 2019.12.20 |
비전공자의 코딩 독학 - 파이썬[4] 자료형(숫자형, 문자형) (0) | 2019.12.19 |