
평소 야구를 좋아해 여자친구와 자주 경기장을 방문하면서, 경기 후 하이라이트 영상에서 우리가 화면에 포착되었는지 확인해보는 재미가 있었습니다.
이러한 경험을 계기로, 영상 속 특정 인물(예: 본인 또는 지인)을 자동으로 탐지할 수 있는 시스템이 있다면 어떨까 하는 아이디어를 떠올리게 되었고, 이를 실제 코드로 구현해보고자 프로젝트를 시작하게 되었습니다.
단순한 호기심에서 출발했지만, 영상 처리, 얼굴 인식, 데이터 분석 등 다양한 기술을 실습하고 학습하는 좋은 기회로 삼고자 기획했습니다. 유튜브 하이라이트 영상을 대상으로 실제 얼굴을 인식하고 비교하는 일련의 과정을 통해, 실전 데이터 기반의 프로젝트 경험을 쌓는 것을 목표로 하고 있습니다.
🗓️ 2025-05-12
✅ 영상 수집
⬜ 영상 다운로드 ⏳ (yt-dlp)
⬜ 프레임 추출 ⏳ (OpenCV)
⬜ 얼굴 등록 ⏳ (face_recognition)
⬜ 얼굴 비교 및 탐지 ⏳
⬜ 결과 리포트 ⏳
📂 GitHub Repository
👉 프로젝트 코드 보러가기
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
import json
from dotenv import load_dotenv
import os
load_dotenv()
API_KEY = os.getenv("API_KEY")
SEARCH_QUERY = '2025 KBO 리그 H/L'
CHANNEL_ID = 'UCoVz66yWHzVsXAFG8WhJK9g'
MAX_RESULTS = 10
PUBLISHED_AFTER = '2025-05-05T00:00:00Z'
youtube = build("youtube", "v3", developerKey=API_KEY)
request = youtube.search().list(
part='snippet',
q=SEARCH_QUERY,
channelId=CHANNEL_ID,
maxResults=MAX_RESULTS,
publishedAfter=PUBLISHED_AFTER,
type='video'
)
search_response = request.execute()
with open('test.json', 'w', encoding='utf-8') as f:
json.dump(search_response, f, ensure_ascii=False, indent=2)
print("✅ test.json 저장 완료!")
build() 함수는 Google API 호출용 객체 생성 함수이다 문제: API 키 발급 경로를 몰랐음
해결: API 및 서비스 > 사용자 인증 정보에서 확인
문제: 10개 요청했는데 5개만 나옴
해결: publishedAfter, 채널 제한 조건 등 재확인 중
혼자서 진행하는 첫 미니 프로젝트로 어떻게 진행해야할지 고민이 많았지만,
여유 있게 기한을 설정하면서 방향을 잡을 수 있었습니다.
처음으로 Youtube data v3 api를 사용하면서 이해하기 위해 열심히 찾아봤지만
다양한 정보가 없어서 Youtube Data API 문서 를 꼼꼼히 읽으며 구조와 요청방식, 파라미터 등에 대해 이해하려고 노력했습니다.
덕분에 단순한 예제뿐만 아니라 실제 채널 데이터를 기준으로 원하는 영상을 수집하고 필터링할 수 있는 방법을 배울 수 있었습니다.
데이터를 수집하면서 느낀 점은,
유튜브에는 단순 콘텐츠 플랫폼을 넘어서 방대한 미디어 데이터 분석 소스로 활용할 수 있는 가능성이 매우 크다는 걸 느꼈습니다.
앞으로 영상 기반의 데이터 분석이나 자동화에 관심을 두고 더 깊게 다뤄보고 싶다는 생각이 들었습니다.