본문 바로가기
IT(Tip)

[chatGPT] 유튜브 영상 스크립트 추출 파이썬 코드 질문

by good4me 2023. 2. 14.

goodthings4me.tistory.com

챗GPT를 사용하여 파이썬 코드를 작성하는 연습을 하기 위해 유튜브 영상에 있는 스크립트를 추출하는 프로그램을 질문했다.

 

 

chatGPT에서 유튜브 영상 스크립트 추출하는 파이썬 코드를 물어보면..

Q. 질문(Prompt) : 유튜브 영상 https://www.youtube.com/watch?v=xxxxxx에서 스크립트를 추출하는 파이썬 프로그램을 알려줘요.

A. 결과 : 유튜브 영상에서 스크립트를 추출하려면 Google API를 사용하여 자동 생성된 자막을 다운로드해야합니다.

 

1. Google API 사용자 인증 및 라이브러리 설치

  • Google Cloud Platform에서 프로젝트 생성 및 사용자 인증 설정
  • google-auth와 google-api-python-client 패키지 설치

2. YouTube 자막 다운로드

  • googleapiclient.discovery를 사용하여 YouTube Data API를 초기화
  • captions().list()를 사용하여 비디오의 자막 ID 가져오기
  • captions().download()를 사용하여 자막 다운로드

3. 자막 처리

  • XML 파서를 사용하여 자막 XML 파일에서 텍스트 추출
  • 텍스트 정규화 및 전처리

파이썬 코드 예시

해당 코드를 실행하기 위해서는 Google API 사용자 인증 및 API 키를 가져와야 합니다.

구글 클라우드 플랫폼 검색

 

import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from google.oauth2.credentials import Credentials
from xml.etree import ElementTree

# 사용자 인증 및 YouTube API 초기화
creds, project = google.auth.default(scopes=["https://www.googleapis.com/auth/youtube.force-ssl"])
youtube = build("youtube", "v3", credentials=creds)

# 자막 ID 가져오기
def get_caption_id(youtube, video_id):
    captions = youtube.captions().list(
        part="id",
        videoId=video_id
    ).execute()
    if captions["items"]:
        return captions["items"][0]["id"]
    return None

# 자막 다운로드
def download_captions(youtube, caption_id):
    subtitle = youtube.captions().download(
        id=caption_id,
        tfmt="vtt"
    ).execute()
    return subtitle

# XML 파서를 사용하여 자막 텍스트 추출
def parse_captions(xml_data):
    root = ElementTree.fromstring(xml_data)
    text = []
    for p in root.iter("p"):
        if p.text:
            text.append(p.text)
    return "\n".join(text)

# 비디오 ID 및 자막 ID 설정
video_id = "8qS0B7BfLZs"
caption_id = get_caption_id(youtube, video_id)

# 자막 다운로드 및 처리
if caption_id:
    subtitle = download_captions(youtube, caption_id)
    text = parse_captions(subtitle)
    print(text)
else:
    print("자막이 없습니다.")

※ 위 코드의 실행은 구글 API 사용자 인증이 되어 있어야 할 수 있었다. 그래서 Google API 사용자 인증 절차를 챗GPT에 아래처럼 다시 질의해봤다.

 

good4me.co.kr

 

Q. 질문 : Google API 사용자 인증하는 절차를 알려줘요.

A. 결과 : Google API 사용자 인증을 위해서는 다음 단계를 따라야 합니다.

 

1. Google Cloud Platform에 로그인하고 새 프로젝트를 만듭니다.

2. Google API 사용 설정

  • "API 및 서비스"에서 "API 및 서비스 라이브러리"로 이동
  • 원하는 API를 검색하여 활성화

3. 사용자 인증 정보 만들기

  • "API 및 서비스"에서 "사용자 인증 정보"로 이동
  • "사용자 인증 정보 만들기"를 선택하고 "OAuth 클라이언트 ID"를 선택
  • "OAuth 클라이언트 ID 만들기"를 선택하고 요구 사항에 따라 설정
  • 클라이언트 ID와 클라이언트 비밀번호가 생성됩니다.

4. 권한 부여

  • 권한 부여 페이지로 이동하여 프로젝트와 사용자를 선택하고 권한을 부여합니다.

5. 권한 부여 파일 다운로드

  • "API 및 서비스"에서 "사용자 인증 정보"로 이동
  • "OAuth 2.0 클라이언트 ID" 섹션에서 권한 부여 파일을 다운로드합니다.

위 단계를 완료하면 파이썬 코드에서 권한 부여 파일을 사용하여 Google API에 액세스할 수 있습니다.


챗gpt를 사용하면 바로 실행할 수 있는 코드를 얻기 보다는 실행할 수 있는 가이드 코드를 얻을 수 있다고 봐야 할 듯 하고, 위 코드를 수정하여 실행하려면 구글 API가 먼저 있어야 하니 그것부터 생성해야겠다.

 

구글 API - 사용자 인증 정보 만들기

 

구글 API - 사용자 인증 정보 생성하기

Google API 사용을 위해 챗gpt에 묻고 그 결과로 나온 내용을 수행해보았다. API 및 서비스에서 사용자 인증 정보 만들기, OAuth 클라이언트 ID 만들기 절차를 진행한다. 구글 API 사용자 인증 정보 만들

goodthings4me.tistory.com

 

 

 

 

댓글