#파이썬 #유튜브 영상 이미지 추출

최근에 드라마를 보다가 스크랩을 하고 싶어졌다.

인스타나 블로그질이라는걸 해보고 싶었는데 뭔가 이미지를 따는게 귀찮았다. 찾아보니 유튜브 영상을 바로 다운로드 해줄 수 있는 파이썬 라이브러리가 있길래 영상을 다운로드 받아서 이미지 추출까지 해주는 라이브러리를 한큐에 만들고자 한다.

pytube 설치

$ pip install pytube

ffmpeg 설치

# 윈도우의 경우에는 다운로드 받아서 폴더에 압축을 풀고 환경설정만 잡으면 된다.
$ sudo apt install ffmpeg

코드작성

from pytube import YouTube
from urllib import parse
import datetime as dt
import sys
import os

DOWNLOAD_FOLDER = "./Downloads"


url = None
duration = 1
distdate = dt.datetime.now().strftime("%Y%m%d")

# 혹시 까먹을 까봐 args 실행코드만 출력하면 관련 args에 관한 정보를 출력
if len(sys.argv) <= 1:
    print("args:2 => 유튜브 주소")
    print("args:3 => 분당 장수 (최대 1800)")
    sys.exit(0)

# 두번째 유튭 주소 입력시
if len(sys.argv) >= 2:
    url = sys.argv[1]

# 분당 몇장 출력 할것인지 계산 처리 1입력시 1초 한장
if len(sys.argv) >= 3:
    duration = int(sys.argv[2])
    duration = 1800 if duration > 1800 else duration
    duration =  round( (duration / 60),2)

# ffmpeg 실행 코드
ffm = 'ffmpeg -ss 00:00:0 -i '+DOWNLOAD_FOLDER+'/Video/TEST.mp4 -r '+str(duration)+' -qscale:v 2 -f image2 '+DOWNLOAD_FOLDER+'/Images/'+distdate+'-%d.jpg'

print(ffm)

yt = YouTube(url)
print("제목 : ", yt.title)
print("길이 : ", yt.length)
print("게시자 : ", yt.author)
print("게시날짜 : ", yt.publish_date)
# print("조회수 : ", yt.views)
print("키워드 : ", yt.keywords)
# print("설명 : ", yt.description)
print("썸네일 : ", yt.thumbnail_url)

print(yt.streams.filter(progressive=True))

chk = False

for e in yt.streams.all():
    if int(e.itag) == 137:
        chk = True

if chk == False:
    sys.exit(0)


if chk == True:
    stream2 = yt.streams.get_by_itag(137)
    stream2.download(DOWNLOAD_FOLDER+'/Video', 'TEST.mp4')
    os.system( ffm )

실행

# python app.py #유튭주소 #분당_이미지_장수
$ python app.py https://www.youtube.com/watch?v=JNfuIFMBRZ4 6

마무리

별거 없지만 쉽게 사용할 수 있도록 구성 해봤다.
리눅스 위주로 작성되어져 있지만 잘 정리하면 윈도우에서도 바로 쓸 수 있을정도로 간단하다 윈도우에서 ffmpeg 설치하는건 찾아보면 많이 나온다.
개인적으로는 여기에 SSH를 통해서 작업용 컴터로 이미지를 바로 전달 해주는 코드 까지 있으면 어떨 까 해서 그부분도 개인적으로는 구현 해서 사용중이다.

댓글

이 블로그의 인기 게시물

북궐도 2.0

Python Strawberry GraphQL 예제 (feat. #sqlmodel, #mysql)

Arch 계열 리눅스 구글 크롬 설치