YouTube Transcript v4.0.0
주요 전체 제품 런타임은 youtube-note-reader Obsidian 데스크톱 플러그인입니다. 이 플러그인은 결정론적 상태 기계를 소유하고, 설정된 OpenAI 호환 모델을 호출하며, 이 스크립트들을 실행하고, 작업 상태를 유지하며, 완성된 노트를 활성 Vault에 씁니다. Chrome 확장 프로그램은 현재 비디오 URL과 브라우저 쿠키만 제공합니다. OpenCode는 선택적인 Skill 전용 진입점으로 남아 있으며, 전체 브라우저 + Obsidian 설치에는 필요하지 않습니다.
이 Skill을 엄격한 상태 기계로 사용하십시오. 대체 추출 경로를 즉흥적으로 사용하지 마십시오.
버전
사용자가 현재 버전을 물으면 다음을 실행하십시오:
python .obsidian/skills/youtube-transcript/scripts/video_note.py --version
명령 출력을 반환하십시오. 절대 기억에서 답변하지 마십시오. 설치된 버전, 소스 경로 및 핵심 파일의 SHA-256 값을 보고합니다.
고정 워크플로우
각 URL에 대해 다음 단계를 완료한 후 다음 URL로 이동하십시오. 스크립트 결과가 0이 아닌 첫 번째 결과에서 전체 배치를 중단하십시오.
- 소스 자료 추출:
python .obsidian/skills/youtube-transcript/scripts/extract_transcript.py "<url>" --output-dir "YouTube video" --deadline 300
-
생성된 노트와 해당 SRT를 읽으십시오.
article_outline과frames가 포함된 하나의 JSON 계획을 만드십시오.article_outline에는 대본에서 파생된 3-8개의 장(chapter)이 포함됩니다. 모든 항목에는section_id,title,start,end,core_claims및learning_goal이 있습니다. 학습 가치에 따라 프레임을 선택하십시오. 일반적으로 시각적으로 의미 있는 각 장마다 하나의 필수 프레임이 필요하며, 별도의 단계나 결과에 대한 증거가 선택적으로 추가됩니다. 대부분의 비디오에는 6-14개의 프레임이 필요합니다. 24는 엄격한 안전 한계이며, 결코 목표가 아닙니다. 단순히 개수를 늘리기 위해 거의 동일한 여러 시간 지점을 생성하지 마십시오. 모든 프레임에는section_id,timestamp,purpose및required가 있습니다. 동일한section_id를 사용하여 각 스크린샷을 해당 상세 요약 장에 바인딩하십시오. 아직 노트의 이름을 바꾸거나 다시 작성하지 마십시오. 프로브 스크립트를 작성하거나 비디오 형식을 수동으로 검사하지 마십시오. -
계획된 프레임을 정확히 한 번 추출하십시오. 재료 결과가 성공한 후에는 다음 실행 가능한 명령만 허용됩니다:
python .obsidian/skills/youtube-transcript/scripts/extract_frames.py "<url>" --plan "<plan.json>" --note "<generated-note.md>" --output-dir "YouTube video" --deadline 120
-
프레임 결과에
status: ok, 하나 이상의 스크린샷 및 실제manifest경로가 있는지 확인하십시오. 스크립트가 자동으로frame_manifest를 노트 YAML에 씁니다. 이 중 하나라도 누락된 경우 중단하고 최종 노트를 작성하지 말며 썸네일을 대체하지 마십시오. -
references/note-contract.md에 따라 생성된 노트의 이름을 바꾸고 제자리에서 다시 작성하십시오.
## 详细内容总结아래에서 모든article_outline.title을 정확한###제목으로 사용하고, 핵심 주장을 설명하며, 각 성공한 필수 프레임을 해당 장에 중국어 설명과 함께 삽입하십시오. Vault 로컬 스크린샷의 경우 항상![[YouTube video/assets/VIDEO_ID/frame.jpg]]와 같은 Obsidian 위키 임베드를 사용하십시오. 공백이 포함된 이스케이프되지 않은 마크다운 대상을 절대 사용하지 마십시오. 매니페스트에 나열된 이미지만 스크린샷으로 간주합니다. -
검증:
python .obsidian/skills/youtube-transcript/scripts/validate_note.py "<finished-note.md>"
- 검증이 실패하면 해당 노트를 한 번만 편집하고 검증기를 한 번 더 실행하십시오. 이 수리 중에는 추출을 실행하거나, 임시 스크립트를 작성하거나, 구현 코드를 검사하거나, 플랫폼 동작을 진단하지 마십시오. 그래도 실패하면 중단하고 반환된 오류를 보고하십시오. 검증이 성공하면 검증기는 동일한 폴더에서 YAML
url이 최종 노트와 정확히 일치하는待命名 - ...마크다운 초안만 제거합니다. 일치하지 않는 중단된 초안은 재개를 위해 유지됩니다.
실패 정책
PIPELINE_RESULT가 진실의 원천입니다. status: error가 발생하면 즉시 중단하고 URL, 단계, 코드, 메시지, 작업, 완료된 URL 및 시작되지 않은 URL을 보고하십시오.
실패에 대응하여 다른 다운로더, 브라우저, Puppeteer, Chrome/Edge 쿠키 추출, 웹 검색, 오디오 녹음 또는 두 번째 시도를 실행하지 마십시오. 유일하게 제어된 재시도는 스크립트 내부에서 이루어집니다. 즉, 타겟 프레임 추출 중 마지막으로 알려진 양호한 쿠키 확인과 비디오 스트림 URL 새로고침 한 번입니다.
ASR은 기본적으로 비활성화되어 있습니다. 사용자가 오디오 다운로드와 느린 처리를 명시적으로 수락하는 경우에만 --allow-asr을 사용하십시오.
시각 요구사항
- 스크린샷은 증거이지 장식이 아닙니다.
- 데모, 인터페이스, 다이어그램, 매개변수, 비교 상태 및 결과를 사용하십시오.
- 프레임 스크립트는 먼저 yt-dlp 요청 헤더가 있는 원격 720p 이하 스트림을 사용합니다. 원격 탐색이 실패하면 계획된 각 시간 지점 주변의 8초 경계 세그먼트만 다운로드할 수 있습니다. 임시 세그먼트는 즉시 삭제되며 스크린샷을 위해 전체 비디오가 다운로드되지 않습니다.
- 필수 프레임 실패 또는 프레임 계획 적용 범위가 70% 미만이면 심각한 실패입니다.
- 표지, 썸네일, 수동으로 복사된 이미지 또는 중복 임베드는 키프레임으로 간주되지 않습니다.
- 전체 레이아웃이 비슷해 보여도 계획된 프레임을 유지하십시오. 터미널 텍스트, 코드, 슬라이드 및 UI 상태 변경은 유용합니다. 실질적으로 빈 검정/흰색 프레임만 거부하십시오. OCR, AI 이미지 분석 또는 지각적 중복 필터링을 사용하지 마십시오.
frame_manifest가 존재하고 매니페스트의 모든 필수 프레임이## 详细内容总结에 나타나지 않으면 완료를 주장하지 마십시오.- Canvas 파일을 생성하지 마십시오.
최종 노트 요구사항
- 파일 이름:
中文标题 - English Title. - YAML에는
skill_version: 4.0.0,quality_profile_version: 1및extract_frames.py가 쓴 유효한frame_manifest가 포함되어야 합니다. - 본문은 중복된 H1 제목 없이
## 一句话摘要로 시작합니다. - 최종 본문에서 소스 상태, 비디오 설명, 시각 자료 색인, 추출 경고, 작업 지침 및 자체 점검 섹션을 제거하십시오. YAML은 이미 소스 메타데이터를 담고 있습니다.
- 중국어를 먼저 사용하고, 필요한 영어 용어는 처음 사용 시 설명하십시오.
- 대본이 문서 개요와 깊이를 결정하도록 하십시오. 이미지는 설명을 지원하며, 일치하는 프레임을 사용할 수 없다고 해서 중요한 콘텐츠를 축약하거나 생략하지 마십시오.
- 문서 깊이를 비디오 길이에 맞추십시오. 계획된 각 장에는 실제 설명, 비디오 증거 또는 예제, 그리고 명확한 학습 시사점이 필요합니다. 일반적인 내용 채우기 및 반복 문단을 피하십시오.
- 마지막에 SRT를 연결하십시오. 원시 대본 텍스트를 붙여넣지 마십시오.
- 최종 완료 전에 자체 점검 체크리스트를 제거하십시오.