Communitygithub.com

ClayKW/skill

TikTok 링크에서 영화/시리즈 제목을 찾습니다. 비디오를 다운로드하고 10프레임으로 나눈 뒤 두 AI(형사 vs 회의론자)가 번갈아 토론하며 웹 검색으로 검증합니다. 모든 파일은 rclone을 통해 Google Drive에 저장됩니다.

skill란 무엇인가요?

이 스킬은 TikTok 링크가 주어졌을 때 해당 비디오의 출처인 영화나 TV 시리즈를 식별하는 전문 AI 도구입니다. 사용자가 TikTok 링크와 함께 '이게 무슨 영화야?'라고 질문하면, 먼저 `grab_frames.sh` 스크립트로 비디오를 다운로드하고 10개의 키프레임을 추출합니다(처음과 끝 10%는 제외). 이후 두 개의 AI 에이전트가 대화 형식으로 토론합니다. 첫 번째 AI(형사)는 프레임을 분석하여 의상, 배경, 출연진 등의 단서를 바탕으로 1~3개의 후보 제목을 제시합니다. 두 번째 AI(회의론자)는 웹 검색을 통해 각 후보를 검증하고 반박하거나 확인합니다. 이 과정은 기본 3라운드(프레임당 또는 배치 모드)로 진행되며, 모든 분석 결과와 대화 기록은 `diskusi.md`와 `hasil.md` 파일로 정리되어 rclone을 통해 Google Drive에 저장됩니다. 최종적으로 사용자에게는 TV 시리즈의 경우 시즌/에피소드 번호, 에피소드 제목, 재생 시간(분:초)을, 영화의 경우 정확한 재생 시간(시:분:초)과 함께 최종 추측(제목/연도)과 신뢰도, 참조 링크를 제공합니다. 스킬은 Claude Code, Cursor, Codex 등 AI 에이전트 도구와 호환되며, subagent 기능을 활용하여 두 AI 역할을 번갈아 실행합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ClayKW/skill/tree/HEAD/movie-finder

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Movie Finder

TikTok 비디오의 프레임 분석과 두 AI의 토론을 통해 영화/시리즈를 식별하는 도구입니다. 모든 작업 파일(비디오, 프레임, 대화 기록, 결과)은 rclone을 통해 Google Drive에 저장되며, 로컬에는 임시로만 사용되고 정리됩니다.

사용자가 설정할 수 있는 매개변수 (요청에서 묻거나 추측)

매개변수기본값설명
프레임 수10grab_frames.sh의 두 번째 인수
토론 모드per-gambar프레임당 3라운드 토론(무거움, 10프레임 기준 약 30회 토론). batch 모드 = 모든 프레임을 한 번에 3라운드로 논의(가벼움, 대부분의 경우 충분)
라운드3AI1↔AI2 응답 쌍의 수
rclone 원격 경로gdrive:Linux-Server/movie-finderenv MF_REMOTE로 재정의 가능
로컬 유지0세 번째 인수, 1일 경우 비디오를 로컬에도 저장

파이프라인

1. 다운로드 + 프레임 분할

bash scripts/grab_frames.sh "<url_tiktok>" [num_frames] [keep_local]
  • 출력 JSON에는 다음이 포함됩니다: gdrive (대상 폴더), frames_local (jpg 프레임 경로), duration_sec, video_size, scratch_dir.
  • 스크립트 자동화: 다운로드 → 프레임 추출(처음/끝 10% 건너뜀) → gdrive 업로드 → 로컬 비디오 삭제. 프레임은 세션 동안 로컬에 유지됩니다(사용자가 볼 수 있도록).
  • 다운로드 실패(지역/연령 제한): 사용자에게 알리고 대체 링크를 제안합니다.

2. 모든 프레임 보기

frames_local의 각 jpg 파일을 읽기 도구(이미지)를 사용하여 읽습니다. 직접 단서를 기록하세요: 의상, 위치, 배우, 시대/필름 그레인, 화면 속 텍스트, 워터마크, 촬영 스타일, 크레딧 제목.

3. 두 AI 토론 (subagent 도구, agent: general)

두 역할이 WhatsApp 채팅처럼 번갈아 실행됩니다:

  • 🕵️ AI 1 형사 — 프롬프트: 시각적 프레임 분석(보이는 구체적인 단서 언급), 1~3개의 후보 제목 + 연도 + 이유 추측, 신뢰도 제시. AI 1은 프레임 파일을 직접 읽어야 합니다(경로 제공).
  • 🔍 AI 2 회의론자 — 프롬프트: 웹 검색 도구를 사용하여 각 후보를 검증("<제목> <연도> 영화" + 고유 장면 세부정보 검색), 링크 증거로 반박/확인, 새 후보 제안 가능.

규칙:

  • 1라운드 = AI 1 분석 → AI 2 검증. 기본 3라운드.
  • 각 AI가 사용한 모델을 대화 기록 및 답변에 기록하고 표시합니다(예: 🕵️ AI 1 — 형사 [model: custom/auto]). subagent/설정 메타데이터에서 모델 이름을 확인하세요. 두 역할이 같은 모델을 사용하는 경우 그대로 작성합니다. diskusi.md와 최종 답변에도 포함합니다.
  • per-gambar 모드: 각 프레임에 대해 반복하며, 항상 이전 라운드의 대화 기록과 기존 후보 컨텍스트를 포함하여 논의가 이어지도록 합니다. 중복 제거: 다른 프레임에서 동일한 후보가 반복되면 1라운드 강화만으로 충분하며, 전체 3라운드는 필요 없습니다.
  • batch 모드: 모든 프레임(경로 목록)을 하나의 3라운드 토론으로 보냅니다.
  • subagent의 model 매개변수를 설정하지 마세요(기본값 사용).
  • 각 subagent의 범위를 제한하는 것이 좋습니다: AI 1은 분석만(도구 불필요), AI 2는 웹 검색에 집중.

4. 결론

다음 항목을 정리합니다: 제목 + 연도 + 신뢰도(높음/중간/낮음) + AI 2의 참조 링크 + 합의가 없는 경우 메모.

특히 TV 시리즈/SERIAL인 경우, AI 2(최종 라운드)는 다음을 반드시 완성해야 합니다:

  • 시즌 및 에피소드: 클립 출처로 가장 가능성이 높은 에피소드 번호(단서: 식별된 장면/캐릭터/의상 + 웹 검색 "에피소드 가이드", 에피소드별 시놉시스, TMDB 에피소드별 크레딧).
  • 에피소드 제목 (있는 경우).
  • 에피소드 재생 시간(분:초 정밀) (형식 47:23), IMDb(기술 사양/에피소드 페이지) 또는 TMDB에서 가져오기 — 대략적인 반올림 금지.
  • 특정 에피소드를 확정할 수 없는 경우 "에피소드를 확인할 수 없습니다" + 에피소드 재생 시간만 명시적으로 작성합니다.
  • 보너스(최선의 노력, "추정" 표시): 에피소드 가이드/시놉시스에서 식별된 장면을 기반으로 클립의 대략적인 타임스탬프 위치 추정.

특히 영화인 경우: IMDb 기술 사양/TMDB에서 정확한 재생 시간 시:분:초 (형식 1:52:47)을 명시하며, "±120분"과 같은 대략적인 표기는 금지합니다.

5. 결과를 gdrive에 저장 (새 로컬 파일 없이)

  • 전체 대화 기록 → rclone rcat "<DEST>/diskusi.md" (채팅 형식: 이모지 🕵️/🔍, 역할 이름, 응답 내용).
  • 결론 → rclone rcat "<DEST>/hasil.md".

SERIAL용 hasil.md 템플릿 (에피소드 세부정보 필수):

# 식별 결과 — Movie Finder
- 제목 / 유형 / 연도 / 플랫폼 / 제작자 / 신뢰도

## 에피소드 세부정보
- 시즌 및 에피소드 : S01E05 (확정 가능한 경우, 아니면 "확정 불가")
- 에피소드 제목   : "Beautiful Billionaires"
- 에피소드 재생 시간  : 47:23 (분:초, IMDb/TMDB에서)
- 총 에피소드 수   : 11 (S1)
- 클립 예상 위치 : 에피소드 내 ±12:40 (최선의 노력, 추정)

## 일치 이유
...주요 증거...

## 참조
...링크...

영화의 경우: "에피소드 세부정보" 부분을 "영화 재생 시간: 1:52:47 (시:분:초)"로 바꿉니다.

6. 로컬 정리

rm -rf <scratch_dir>

7. 사용자에게 답변

답변 순서: 시리즈의 경우 에피소드 세부정보 및 재생 시간(시즌, 에피소드 번호, 에피소드 제목, 런타임) 또는 영화 재생 시간 + 간략한 토론 요약 + 참조 링크 + gdrive 폴더 위치 — 그런 다음 최종 추측(🎬 결과: 제목/연도)을 맨 아래에 마무리로 배치합니다. 요청하지 않는 한 전체 대화 기록을 표시하지 마세요.

대화 기록 예시

🕵️ AI 1 — 형사 [model: custom/auto]: 프레임 3은 19세기 영국 군인 의상을 보여줍니다... 후보: "1917" (2019), "The Northman" (2022)
🔍 AI 2 — 회의론자 [model: custom/auto]: 확인 중... [websearch] "The Northman"은 바이킹 시대 배경으로 일치하지 않습니다. "1917"이 일치합니다: 참호전, 원테이크. 확인됨: [링크]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬