[파이썬] YouTube API를 사용하여 동영상에 영어와 한국어 자막을 설정 방법 예제

YouTube API를 사용하여 동영상에 영어와 한국어 자막을 설정하는 예제 코드를 제공합니다. 이 코드는 Python을 사용하며, Google API Client Library를 설치해야 합니다. 먼저, 필요한 패키지를 설치하고 코드를 실행할 수 있도록 준비해주세요.

  1. Google API Client Library 설치:
pip install google-api-python-client
  1. OAuth 2.0 클라이언트 ID 생성:
    • YouTube API를 사용하여 동영상에 자막을 설정하려면 OAuth 2.0 클라이언트 ID가 필요합니다. Google 개발자 콘솔(https://console.developers.google.com/)에서%EC%97%90%EC%84%9C) 프로젝트를 생성하고, YouTube Data API v3를 사용 설정한 후, OAuth 2.0 클라이언트 ID를 생성하세요. 이때 “데스크톱 앱”을 선택하면 됩니다. 클라이언트 ID가 생성되면 클라이언트 비밀번호와 OAuth 2.0 클라이언트 ID를 메모해두세요.

이제 아래의 예제 코드를 사용하여 YouTube API를 활용하여 동영상에 영어와 한국어 자막을 설정할 수 있습니다:

import os
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

## OAuth 2.0 클라이언트 ID 및 스코프 설정
CLIENT_SECRET_FILE = 'client_secret.json'
SCOPES = ['https://www.googleapis.com/auth/youtube.force-ssl']

def get_authenticated_service():
    # OAuth 2.0 인증 흐름 초기화
    flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRET_FILE, SCOPES)
    credentials = flow.run_local_server()

    # 인증된 서비스 반환
    return build('youtube', 'v3', credentials=credentials)

def set_video_captions(youtube, video_id, english_caption, korean_caption):
    try:
        # 영어 자막 설정
        youtube.captions().insert(
            part='snippet',
            body={
                'snippet': {
                    'videoId': video_id,
                    'language': 'en',
                    'name': 'English',
                    'isDraft': False
                }
            },
            media_body=english_caption
        ).execute()

        # 한국어 자막 설정
        youtube.captions().insert(
            part='snippet',
            body={
                'snippet': {
                    'videoId': video_id,
                    'language': 'ko',
                    'name': 'Korean',
                    'isDraft': False
                }
            },
            media_body=korean_caption
        ).execute()

        print('영어와 한국어 자막 설정이 완료되었습니다.')

    except HttpError as e:
        print('자막 설정 중 오류 발생:', e)

if __name__ == '__main__':
    # OAuth 2.0 인증 및 YouTube 서비스 생성
    youtube = get_authenticated_service()

    # 동영상 ID 설정 (업로드한 동영상의 ID를 넣어주세요.)
    video_id = 'YOUR_VIDEO_ID_HERE'

    # 영어 자막 파일 경로와 한국어 자막 파일 경로 설정
    english_caption_path = 'YOUR_ENGLISH_CAPTION_FILE_PATH_HERE'  # 영어 자막 파일 경로로 바꿔주세요.
    korean_caption_path = 'YOUR_KOREAN_CAPTION_FILE_PATH_HERE'  # 한국어 자막 파일 경로로 바꿔주세요.

    # 영어 자막 파일과 한국어 자막 파일 열기
    with open(english_caption_path, 'r', encoding='utf-8') as english_file, \
            open(korean_caption_path, 'r', encoding='utf-8') as korean_file:
        english_caption = english_file.read()
        korean_caption = korean_file.read()

    set_video_captions(youtube, video_id, english_caption, korean_caption)

위 코드에서 client_secret.json 파일에는 본인의 OAuth 2.0 클라이언트 ID 및 클라이언트 비밀번호 정보가 포함되어 있어야 합니다. 또한 YOUR_VIDEO_ID_HERE, YOUR_ENGLISH_CAPTION_FILE_PATH_HERE, YOUR_KOREAN_CAPTION_FILE_PATH_HERE를 업로드한 동영상의 ID와 영어 자막 파일 경로, 한국어 자막 파일 경로로 변경해주시기 바랍니다.

위 예제 코드를 실행하면 YouTube API를 통해 동영상에 영어와 한국어 자막이 설정됩니다. 자막 파일은 .srt 또는 .vtt 형식으로 되어 있어야 하며, 각각 영어와 한국어에 해당하는 파일로 설정되어야 합니다.

더 많은 기능과 옵션에 대해서는 YouTube API 문서를 참고하시기 바랍니다.