Skip to content

[Feat] 영상 분석 파이프라인 견고화 및 미처리 영상 자동 분석 도입 #65

@toychip

Description

@toychip

관련 이슈


변경 내용

L1 — 자막 추출 실패 분류 정밀화

  • YoutubeTranscriptClient 단일 게이트웨이 + ProxyYoutubeClient 가 HTTP status (429/403/5xx) 로 분류해 LinktripException throw
  • 모호 실패는 sentinel 영상 ping 으로 "프록시 차단" vs "영상 고유 문제" 구분 → INVALID 오분류 제거

L2 — webshare 프록시 라운드로빈

  • usernames: List<String> 으로 확장, 429/403 시 같은 호출 안에서 다음 프록시로 swap (KR → JP → TW → ...)
  • 환경변수 YOUTUBE_PROXY_USERNAMEYOUTUBE_PROXY_USERNAMES (콤마 구분), CI/CD + docker-compose 동일 적용

L4 — POST 응답에 결과 인라인 반환

  • POST /video/analyze 가 COMPLETED 면 결과 데이터 포함해 반환 (GET 과 동일 shape) → 추가 폴링 불필요
  • HTTP status: COMPLETED/INVALID = 200, PENDING/PROCESSING = 202

L5 — USER/BATCH 우선순위 큐 + source 영속화

  • Source enum 신규 + PriorityBlockingQueue + sequence tiebreaker → priority 보장 & 동일 source 내 FIFO
  • video_analysis_task.source 컬럼 추가 (audit + 재시도 priority 보존), 모든 호출처가 source 명시 (default 제거)

L6 — 미처리 영상 자동 분석 스케줄러

  • youtube_video 에 있지만 video_analysis_task 가 없는 영상을 LEFT JOIN anti-join 으로 조회 → 10분마다 5건씩 BATCH 로 enqueue
  • @ConditionalOnProperty 로 prod 만 활성 (dev 자동 실행 차단)

체크리스트

  • Ktlint
  • 테스트 통과 여부

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions