본문 바로가기
#개발 이야기 - 개발, IT 트렌드/AI 이야기

ChatGPT로 원하는 무료 이미지/비디오 다운로드 하는 프로그램 만들기 | 비개발자도 가능! | pexels, Pixabay

by DrinkAloneTogether 2023. 3. 2.
728x90
반응형

AI 이야기
AI 이야기

원하는 이미지 / 비디오를 다운로드 하려면

보통은 google이나 네이버 등에서 검색을 하여 오른쪽 버튼을 눌러 이미지 저장하여 사용할 것이다.

하지만, 이런 이미지를 잘못 사용했다가는 저작권 위반이 될 수 있다.


요즘, 콘텐츠 크리에이터들이 많아지면서 필요로 하는 이미지 / 동영상 등 리소스의 저작권이 중요해지고 있는 듯 하다.

내가 아는 사이트 중 Pexels, Pixabay 에서는 저작권에 구애 받지 않고 무료로 사용할 수 있는 이미지 / 동영상 등을 다운로드 받을 수 있다.

 

Pexels의 라이선스 소개 페이지

Pexels의 라이선스 설명 페이지 | 모든 사진과 동영상을 무료로 사용할 수 있으며, 출처 표기는 의무가 아니다.

Pixabay의 라이선스 소개 페이지

Pixabay의 라이선스 설명 페이지 | 모든 사진과 동영상을 상업, 비상업적으로 무료로 사용할 수 있으며, 역시 출처 표기는 의무가 아니다.

 


검색해서 하나씩 다운로드하기 귀찮아

이렇게 좋은 사이트이지만 들어가서 하나씩 검색해서 하나씩 다운로드 받아야 하는 것은 너무도 귀찮다.

마침 Pexels와 Pixabay를 둘러보다가 두 사이트 모두 API를 제공한다는 것을 보았다.

API를 제공한다는 것은 사이트에 들어가지 않고 원하는 이미지 / 비디오를 검색하고 다운로드 받을 수 있는 프로그램을 만들 수 있다는 것! 

그렇다면 우리의 ChatGPT가 나설 때이다.

오늘은, 어제 포스팅한 나의 어설픈 프롬프트의 완성도를 높여주는 확장 프로그램인  AIPRM을 사용해 보겠다.

AIPRM이 궁금하다면, 아래 포스팅 참고.

 

ChatGPT와 함께 사용하면 좋은 확장 프로그램 2가지 | 프롬프트 지니, AIPRM

ChatGPT. 마냥 편하기만 한 것은 아니다. 한국어로 ChatGPT를 사용하고 있다면 영어로 사용할 때보다 응답 시간이 느리다는 것을 눈치챘을 것이다. ChatGPT는 영어에 최적화되어 있고 이를 구동하는 알

drinkalonetogether.tistory.com


Topic을 Software Engineering으로 지정하고 python으로 검색하면, "ULTRAcoder-1 click create app from Idea"라는 프롬프트가 나온다.

매개변수로 IdeaProgramming 언어를 주면 되는 듯 하다.

AIPRM

 

Pexels에서 비디오를 검색해서 다운로드 하는 프로그램 만들기

pexels.com에서 사용자가 입력한 키워드와 연관 있는 비디오를 다운로드 하는 프로그램, 파이썬

코드결과_프로젝트구성

프로젝트 디렉토리 구성까지 해준다. 와우!

코드결과2_apidownload
코드결과3_utils

다 떠먹여 준다.

위의 디렉토리 구조대로 폴더 만들고 파일 만들어서 코드 붙여 넣으면 된다.

실행방법_howtorun

실행 방법도 물어보면 알려준다.

ChatGPT가 API Key 발급 방법도 알려줘서 내가 수고를 조금 덜었다.
(실제로 해당 사이트에 들어가서 API Key 발급 받아보면 매우 간단하다는 것을 알 수 있다.)

발급 받은 API Key는 main.py의 YOUR_API_KEY 부분에 대신 넣어준다.

에러질문

역시 오늘도 한 번에 성공하지는 않는다.

하지만 에러도 물어보면 고치는 방법을 알려준다.

이번에 발생한 문제는 ChatGPT가 알려주기로는 main 폴더를 만들고 그 아래에 main.py를 두라고 하였으나,

정작 main.py의 코드는 main 폴더가 아닌 프로젝트의 root에 위치해야 동작하도록 작성해주었다.

main.py를 상위 폴더로 이동해주었다.


실행해보자

keyword를 입력 하고 조금 기다리면 downloads 폴더에 입력했던 keyword로 폴더가 생성되고 그 안에 영상이 받아진다.

실행커맨드


영상은 HD / SD 화질이 받아지는데, 나는 HD 화질만 받고 싶어서 프로그램을 조금 손 보았다.

30초 이상의 영상만 다운로드 하는 기능도 추가하였다.

download.py 수정하였다.

# download.py

import os
import urllib.request

class VideoDownloader:
    def __init__(self):
        pass
    
    def download_videos(self, videos, download_path):
        if not os.path.exists(download_path):
            os.makedirs(download_path)
        for video in videos:
            # video 길이가 30초 미만이면 다운로드 받지 않는다.
            if video["duration"] < 30:
                continue
            # 검색 결과로 나온 비디오에서 hd 영상이 있는지 체크하는 변수 추가
            is_hd_quality = False
            # hd 영상이 있으면 링크를 저장할 변수 추가
            hd_link = ""
            # 하나의 비디오에도 화질이 다른 여러 개의 파일이 존재하는 것으로 보인다.
            for video_file in video["video_files"]:
                # 여러 개의 파일 중 quality가 hd인 파일이 있으면 hd 영상이 있다고 체크하고 링크 저장
                if video_file["quality"] == "hd":
                    is_hd_quality = True
                    hd_link = video_file["link"]
                    break
            # hd인 파일 없거나 hd link가 비어있으면 패스
            if is_hd_quality == False or hd_link == "":
                continue
            # hd_link를 다운로드 받을 video_url로 사용
            video_url = hd_link
            video_name = video_url.split("/")[-1].split("?")[0]
            video_path = os.path.join(download_path, video_name)
            urllib.request.urlretrieve(video_url, video_path)

 

아! 그리고 한 가지 더, 나는 사이즈가 크고 가로로 긴 영상만 원하기 때문에, 검색하는 API에 매개변수도 조금 추가하였다.

api.py를 수정하였다.

# orientation=landscape, size=large 추가
url = f"https://api.pexels.com/videos/search?query={query}&orientation=landscape&size=large"

다시 한 번 실행해보자

다운로드결과

이렇게 campfire로 검색했을 때의 동영상 중 30초 이상이면서 hd 화질의 영상만 다운로드 되었다.


마치며 ...

  • 이거 너무 남발하다가는 용량이 부족해질 수도 있겠다는 생각이 들었다.
  • API에 검색 결과를 어떤 기준으로 Sort해서 보여줄지 지정할 수 있게 되어 있었다면, Sorting 기준을 지정해서 검색하고 앞에서 5개 까지만 다운로드 받도록 프로그램을 수정할 수 있었을 것 같다.
  • 오늘도 ChatGPT를 활용하여 재미있는 것을 해보았다. 무엇을 할 수 있을지 앞으로 더 기대된다.
  • 아래 포스팅의 2탄을 빨리 작성해야 하는데, ChatGPT가 너무 긴 코드는 작성하다가 멈춰 버린다. 이 부분을 어떻게 해결할지 고민 중이다. 프롬프트를 처음부터 다시 설계해 봐야겠다.

2023.02.27 - [#개발 이야기/AI 이야기] - ChatGPT로 2023년도 미국 주식 예측하는 프로그램 만들기 #1 | 비개발자도 가능

 

ChatGPT로 2023년도 미국 주식 예측하는 프로그램 만들기 #1 | 비개발자도 가능

테슬라 주식 차트 그려보기 주가 예측을 해보기 전에 먼저, 서학 개미들에게 아주 친숙한 대표적인 미국 주식인 테슬라의 차트를 그려보는 프로그램을 작성해 보겠다. (애플 차트도 같이 그려보

drinkalonetogether.tistory.com

 
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
 
 
 
 
 
 
 
 
728x90
반응형

댓글