광고
광고
광고
광고
광고
광고
광고
광고
광고
광고
광고
광고
광고
로고

[AI로 YouTube Shorts 공장 만들기 니킬 나이르] API와 도구를 혼합하여 YouTube Shorts를 자동으로 제작할 수 있는 시스템을 구축하는 것

박민제 | 기사입력 2024/02/12 [15:14]

[AI로 YouTube Shorts 공장 만들기 니킬 나이르] API와 도구를 혼합하여 YouTube Shorts를 자동으로 제작할 수 있는 시스템을 구축하는 것

박민제 | 입력 : 2024/02/12 [15:14]

 

AI로 YouTube Shorts 공장 만들기

 

How YouTube Shorts Creators Can Start Earning up to $10,000 per Month

늘 그렇듯, 내 마음은 새로운 프로젝트 아이디어로 윙윙거립니다. 이번에 저는 자동화된 YouTube Shorts(Minecraft 게임플레이에 대한 설명이 포함된 Reddit 게시물)의 물결에 푹 빠졌습니다. 상당히 혁신적이었지만 개선의 여지가 있었습니다.

콘텐츠가 왕이고 효율성이 핵심인 세상에서 이 Shorts를 새롭게 바꿔보는 것은 어떨까 생각했습니다. 내 임무는? 각 게시물과 관련된 AI 생성 영상으로 일반 Minecraft 배경을 교체하고 최고 수준의 음성 합성으로 내레이션을 업그레이드하세요.

그리고 무엇을 추측합니까? 내가 해냈어.

 

청사진

계획은 흥미로울 정도로 간단했습니다. API와 도구를 혼합하여 YouTube Shorts를 자동으로 제작할 수 있는 시스템을 구축하는 것이었습니다. 저는 이 단편의 서사를 위해 수많은 주제로 가득 찬 보물창고인 Reddit을 활용했습니다. 고해상도 이미지 생성을 위한 강력한 리소스인 Replicate의 Stable Diffusion API를 통해 비주얼에 생명력을 불어넣었습니다. 성우? 11Labs의 음성 생성 기술로 제작되었습니다. 마지막으로 moviepy가 영상을 엮었고 YouTube API를 통해 방송을 만들었습니다. 이렇게 해서 YouTube Shorts에 대한 새로운 해석이 탄생했습니다.

조립 라인

Reddit의 마이닝 내러티브

자동화 기계의 첫 번째 장비로 Reddit 깊은 곳에서 흥미로운 이야기를 채굴합니다. 저는 이를 실현하기 위해 Python의 Reddit API Wrapper인 PRAW를 활용했습니다. 내가 선택한 하위 레딧은? r/shortscarystories는 YouTube Shorts에 대한 내 비전에 이상적으로 부합하는 간단한 스릴러 영화와 완벽하게 어울립니다.

PRAW를 사용하면 필수 자격 증명을 사용하여 Reddit API에 대한 링크가 위조되었습니다. 게시물이 스트리밍되기 시작했고, 저는 이러한 유입을 처리하기 위해 일괄 검색 방법을 채택하여 원하는 개수가 충족될 때까지 매번 N개의 게시물을 수집했습니다.

일괄 검색

수집된 데이터는 사전으로 구성되어 각 게시물의 제목, 내용, 타임스탬프, 찬성표 및 댓글 수를 문서화했습니다. 이는 나중에 분석 및 조작의 용이성을 위해 데이터프레임으로 변형되었습니다.

r/shortscarystories의 최종 데이터 프레임

매력적인 제목과 설명 초안 작성

새로운 게시물이 늘어나면서 다음으로 중요한 단계는 YouTube Shorts의 관심을 끄는 제목과 설명을 만드는 것이었습니다. 이러한 요소는 시청자의 관심을 끌고 동영상의 핵심을 간결하게 전달하는 데 핵심입니다.

제목과 캡션을 만들기 전에 텍스트는 정규식(regex)을 사용하여 일부 관리를 거쳐 내러티브가 OpenAI의 GPT-4 API에 입력될 수 있도록 준비되어야 했습니다.

전처리 기능

주요 관리 작업에는 다음이 포함됩니다.

  • 줄 바꿈 및 중복 공백 제거
  • 별표(*) 및 백슬래시(/)와 같은 특수 문자 제거
  • 줄 시작 부분의 숫자 지정

깔끔한 텍스트로 GPT-4가 대신하여 Shorts의 제목과 캡션을 대량으로 생성했습니다. 프롬프트를 세심하게 미세 조정하여 출력을 개선하여 YouTube Shorts 타이틀의 매력적인 스타일에 잘 어울렸습니다.

스크립트를 기반으로 YouTube Shorts의 매우 짧은 제목을 생성합니다. 아래 예시와 유사하게 만들어 보세요. 예: - 일반 사진에 숨겨진 무서운 것들 Part#28 - 인터넷에서 가장 무서운 영상입니다... - 무서운 영상😳 #shorts

YouTube Shorts에 대한 매우 짧은 설명을 생성하세요.

AI 예술성을 위한 이미지 프롬프트 제작: 비밀 소스

AI 기반 콘텐츠 조립에 없어서는 안될 부분인 이미지 프롬프트는 YouTube Shorts 제작 프로세스를 진정으로 차별화합니다. 창의적인 발판으로서 이러한 프롬프트는 내 Shorts에 엣지를 더해주는 이미지, 미리보기 이미지 등 시각적으로 풍부한 요소를 제작할 수 있는 길을 열어줍니다. 안내등 역할을 하는 이미지 프롬프트를 통해 Stable Diffusion과 같은 AI 모델이 콘텐츠의 정신과 조화를 이루는 시각적 이미지를 생성할 수 있습니다.

이미지 프롬프트 기능

코드는 두 번 사용됩니다.

이미지 프롬프트 : 제공된 비디오 스크립트를 기반으로 이미지 생성을 위한 6개의 짧은 설명 프롬프트를 생성합니다.

썸네일 프롬프트 : 콘텐츠가 안전하고 매력적인 상태로 유지되도록 하면서 비디오 썸네일 생성을 위한 간결한 단일 프롬프트를 생성합니다.

사용된 최종 프롬프트는 다음과 같습니다.

DALLE-2/Midjourney/Stable Diffusion 프롬프트 이미지 생성을 위한 6개의 짧은 단일 라이너 프롬프트를 생성합니다. 제가 드리는 프롬프트는 비디오의 대본이 될 것입니다. 프롬프트는 매우 짧지만 NSFW 콘텐츠 없이 설명이 포함되어야 합니다.

안정적인 확산을 통한 이미지 생성

다음으로 조립 라인에서는 Replicate의 Stable Diffusion API를 사용하여 이미지를 제작했습니다.
이 API는 확산 모델을 활용하여 내러티브를 완벽하게 보완하는 시각적으로 눈에 띄는 이미지를 만듭니다 .

눈길을 끄는 세로형 비디오 콘텐츠를 위한 이미지를 만드는 데에는 특히 DALL·E 및 Midjourney와 같은 모델을 사용할 때 여러 가지 과제가 있었습니다.

  1. 화면 비율 불일치 : DALL·E 및 Midjourney는 주로 1:1 화면 비율을 따르는 표준 이미지 생성을 위해 설계되었습니다. 세로 비디오에 적용할 경우 이러한 모델은 세로 형식에 적합하지 않은 이미지를 생성할 수 있습니다.
  2. 참여도 : Shorts와 같은 짧은 형식의 콘텐츠는 시청자의 참여를 유지하기 위해 시선을 사로잡는 영상에 의존하는 경우가 많습니다. 내 경험에 따르면 시각적으로 눈에 띄는 이미지를 생성하는 Stable Diffusion 능력은 DALL-E나 Midjourney보다 훨씬 뛰어났습니다.

이 함수는 generate_stablediffusion_image이미지 프롬프트를 입력으로 사용하고 특정 매개변수를 사용하여 치수, 출력 수 및 안내 척도를 포함한 이미지를 생성합니다. 썸네일의 경우 하나의 이미지가 생성되었으며, 주요 콘텐츠의 경우 Reddit 게시물 제목에서 영감을 받은 일련의 프롬프트가 사용되었습니다.

이미지 생성 기능

그런 다음 코드는 생성된 이미지를 지정된 디렉터리에 체계적으로 저장했습니다. 여기에는 Reddit 게시물 제목을 기반으로 썸네일과 순차적으로 이름이 지정된 이미지 세트가 포함되었습니다.

이미지를 폴더에 저장하기

11Labs로 음성합성

영상에 개인적인 느낌을 더하기 위해 11Labs의 음성 생성 기술을 활용했습니다. 이 API는 고급 기계 학습 기술을 사용하여 텍스트에서 인간과 유사한 음성을 합성합니다. 이 단계를 자세히 살펴보겠습니다.

오디오 생성 기능

핵심 프로세스는 generate전처리된 Reddit 게시물 콘텐츠를 인간과 유사한 음성으로 변환하는 기능에 의해 처리됩니다. 선택된 음성 "Nicole"과 모델 "eleven_monolingual_v1"은 자연스러운 내레이션을 보장합니다. 그런 다음 코드는 생성된 오디오를 정리된 파일 이름으로 체계적으로 저장하여 일관성을 유지합니다.

ffmpeg로 동영상 연결하기

내러티브, 이미지, 음성 해설이 준비되었으면 다음 단계는 이를 비디오로 연결하는 것이었습니다. 이를 위해 저는
광범위한 비디오, 오디오 및 이미지 형식을 처리할 수 있는 다목적 도구인 moviepy를 사용했습니다.

여기서는 해당 폴더에서 생성된 모든 이미지와 오디오 음성 해설을 로드합니다. 그런 다음 전체 비디오 길이로 나누어 각 이미지를 표시하는 기간을 계산합니다. 그런 다음 최종 클립의 프레임 속도를 설정하고 마지막으로 모든 파일을 연결하고 최종 비디오를 파일 시스템에 기록합니다.

최종 비디오 스티칭 코드

대부분의 Shorts는 화면에 음성 해설 텍스트를 표시하므로 비슷한 작업을 수행했습니다. 저는 비디오 스크립트를 가져와 OpenCV 마법을 사용하여 화면에 단어를 표시했습니다. 하지만 문제가 있습니다. 대사와 대사가 일치하지 않습니다. 동영상 길이에 대한 총 단어 수에 따라 팝업됩니다. 아직도 이 문제로 머리를 긁적입니다. 더 멋진 해결 방법이 있으면 저에게 연락해 주세요.

비디오에 캡션 추가

YouTube API를 사용하여 YouTube에 방송

마지막 단계는 동영상을 YouTube에 푸시하는 것이었습니다. YouTube API를 사용하여 제목, 설명, 태그 설정을 포함한 업로드 프로세스를 자동화했습니다.

짧은 업로드 기능

나는 여기서 두 가지 큰 장애물에 부딪혔습니다.

채널 소유권 및 업로드의 정확성
우선 가장 중요한 문제는 누가 채널을 소유하고 내 Shorts 동영상이 정확히 어디에 표시되는지에 대한 문제였습니다. Shorts를 게시하기 위해 새 채널을 만들었지만 내 개인 계정에 연결되어 있었습니다. 이로 인해 내 Shorts가 내 개인 채널에 게시되었습니다. 해결책은 새 채널의 ID를 확인하고 이를 추가 매개변수로 본문에 전달하는 것이었습니다.

Google Colab의 OAuth2.0 확인:
두 번째 문제는 Google Colab 인증, 특히 OAuth2.0 확인과 관련된 문제였습니다. Google Colab은 많은 작업에 유용하지만 YouTube와 같은 외부 서비스 인증에 있어서는 그리 많지 않습니다. OAuth2.0에는 로컬 호스트 링크가 필요했지만 Colab은 서버에서 호스팅되기 때문에 그런 일이 발생하지 않았습니다. 내 문제는 내 컴퓨터에서 코드를 실행하고 Firefox를 통해 토큰을 얻은 다음 이를 Colab 스크립트에 사용하는 것이었습니다.

제품

이제 퍼즐의 마지막 조각이자 결승선이 됩니다. Shorts에 대한 저의 독특한 해석입니다. 몇 가지 장애물과 몇 가지 시행착오를 거쳐 이 Shorts 동영상으로 새 채널을 채울 수 있었습니다. 일부에는 아직 완벽하게 동기화되지는 않았지만 캡션이 포함되어 있습니다.

또한 까다로운 인증 경로를 탐색하고 잠시 우회하여 로컬에서 실행한 다음 신뢰할 수 있는 플랫폼인 Google Colab으로 돌아왔습니다. 자, 여기 있습니다. 새로운 Shorts 모음이 새 채널에 멋지게 정리되어 있습니다. 물론, 항상 조정하고 개선할 여지가 있지만 이것이 바로 현재 제가 갖고 있는 것입니다. 제안이나 아이디어가 있으면 자유롭게 공유해 주세요. Shorts를 한 번에 하나씩 디지털 세상을 더욱 재미있게 만들어 봅시다!

아래에서 코드와 Shorts는 물론 몇 개의 개별 Shorts를 업로드한 내 GitHub 및 YouTube 채널에 대한 링크를 찾을 수 있습니다. 두 개의 Shorts 동영상을 연결했는데, 하나는 화면 캡션이 있고 다른 하나는 자막이 없습니다.

 
 
광고
광고
광고
광고
광고
광고
많이 본 기사