Install
$ agentstack add skill-s-choung-research-skills-transcript2html ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Transcript -> Readable Korean HTML
/youtube2script 또는 /youtube 가 만든 transcript.md 를 받아서 두 개의 파일을 만든다:
transcript_formatted.md-- 원본 영어 raw transcript을 정리해서 오타/전사오류를 고치고, 2~3 어절 단위 chunk을 문단으로 합치고, 섹션 헤더를 붙이고, 프레임을 본문 사이에 끼운 한국어 읽기용 Markdown.transcript.html-- dark mode + Stripe 스타일 + Pretendard 기반 읽기용 HTML. 프레임 카드 + 본문 카드 + pullquote + verdict 블록.
둘 다 원본 transcript.md 가 있는 디렉토리에 저장한다.
Input
유저가 경로를 줄 수도 있고 (파일 또는 디렉토리), 안 주면 현재 cwd 아래 가장 최근 output/*/transcript.md 를 찾는다.
/transcript2html [path/to/transcript.md or output/dir/]
Step 1. Read
transcript.md읽기 (Read tool)- 같은 디렉토리의
metadata.json읽기 (있으면) -- title, channel, duration, url, upload_date - 같은 디렉토리의
frames/디렉토리 스캔 --frame_NNN_MMSS.jpg형식 transcript.md상단의Frame source필드 확인:heatmap이면 조회수 피크,even이면 균등 간격 fallback -- 이건 hero eyebrow에 반영 ("YouTube 트랜스크립트 · Mo Bitar · 조회수 피크 10컷" 또는 "균등 10컷")- 각 프레임마다
### @ MM:SS아래> **대사**:블록이 있다. 이게 그 시점에 영상에서 실제로 언급되는 대사 원문. 이걸 한국어로 번역해서 프레임 바로 아래.frame-caption블록에 넣는다. (원문도 `` 로 작게 병기)
Step 2. Clean & Segment (영어 원본)
raw transcript에서:
- 2~3 어절 chunk을 문단으로 합친다
- 전사 오류 교정: 고유명사(회사명, 사람이름, 제품명), 자막 자동생성이 흔히 틀리는 스펠링,
[ __ ]같은 마스킹을 맥락상 자연스러운 단어로 복원 (억지로 욕설 넣지 말 것 -- 문맥에 맞는 표현 선택) - 내용상 자연스러운 구분점 3~6개로 섹션 분할
- 각 섹션에 짧은 한국어 제목 부여
- 프레임 타임스탬프를 각 섹션 경계에 매핑
Step 3. Translate to Korean
영어 원본 -> 자연스러운 한국어 정중체 (~요체) 번역.
스타일 규칙 (paper-style 원칙 차용)
금지:
- 번역어투 ("~이다", "~것이다", "~함에 있어서", "~을 통하여", "~에 대한 것이다")
- AI slop: "중요한 것은", "주목할 만한", "핵심은", "~에 다름 아니다", 과잉 병렬 "A, B, 그리고 C"
- 격식체 (~합니다, ~입니다) -- 이건 뉴스 아님
- 반말 (~해, ~야) -- 문서 읽기 용도
- 의미 부풀리기: "혁신적인", "놀라운", "획기적인"
- em dash (U+2014) -- 쉼표나 괄호 또는 줄바꿈으로
- 볼드+콜론 리스트 ("속도: 빨라요")
- 과잉 hedging ("~일 수도 있을 것 같습니다만")
- 세 개 나열 패턴 반복
- 이모지
권장:
- 해요체 (~요, ~어요, ~네요) 유지, 톤 일관성
- 짧은 문장 + 긴 문장 섞기. 균일한 리듬은 기계 느낌
- 원저자의 냉소/유머는 살리되 과장하지 말 것
- 영어 고유명사/제품명/기술용어는 그대로: ChatGPT, GPT-5, Claude, Gemini, Reddit, LinkedIn, Substack, Subnautica, PUBG, Krafton, Shark Tank, Mr. Wonderful, Delaware, Harvard Business School, Steam, IKEA, Grammarly, Slack, Iron Dome, Labradoodle, Roomba 등
- 단, 의역으로 더 자연스러운 것: "prompt engineering" -> "프롬프트 엔지니어링" (음차), "Inc. magazine" -> "Inc. 매거진", "CEO" -> "CEO" 그대로
- 의미가 한국어에 없는 표현은 의역 + 필요시 영어 원문
original병기 (남용 금지, 문서 전체 5회 이하)
억지해석 금지
원문이 과장이면 과장 그대로, 비꼬기면 비꼬기 그대로. 번역자가 "실은 이런 의미입니다"라고 풀이하지 말 것. 원문에 없는 맥락 추가 금지. 원문이 모호하면 모호한 대로 번역.
Step 4. Write transcript_formatted.md
Markdown 구조:
# {한국어 제목}
- **Channel**: ...
- **URL**: ...
- **Duration**: ...
- **Upload Date**: ...
---
## 1. {섹션1 제목}
{번역된 문단}
{번역된 문단}
---
## 2. {섹션2 제목}
...
프레임은 각 섹션 상단 또는 중간에 (섹션 길이에 따라). em dash 사용 금지 -- -- 또는 쉼표로.
Step 5. Write transcript.html (dark mode)
템플릿: ~/.claude/skills/transcript2html/template_dark.html
Read로 템플릿 읽고, 다음 placeholder들을 치환:
| Placeholder | 내용 | |---|---| | {{TITLE}} | ` 태그용 -- 한국어 제목 | | {{EYEBROW}} | "YouTube 트랜스크립트 · {channel}" | | {{TITLEHTML}} | h1용 HTML -- 두 줄 분리 가능, 와 활용 | | {{LEDE}} | 한 문단 요약 (2~3 문장, 낚시 말고 담백하게) | | {{HEROSTATS}} | 4개 값 라벨 -- duration, 엔트리 수, 핵심 수치 2개 | | {{SECTIONS}} | 전체 섹션 블록 | | {{URL}} | 원본 URL | | {{URL_LABEL}} | URL 축약 라벨 (e.g., youtube.com/watch?v=...) | | {{DATE}} | YYYY.MM.DD` -- 오늘 날짜 |
섹션 블록 구조
각 섹션:
Act 01
{섹션 제목}
MM:SS
이 시점 대사 · MM:SS
{해당 초의 대사 한국어 번역, 짧게 1~2문장. 핵심 키워드는 bold}
{원문 영어, 너무 길면 말줄임}
{한국어 본문 문단, 키워드 밑줄, 핵심 단어 bold, 중요 개념은 key class 적극 사용}
{문단}
...
...
...
강조 규칙 (필수)
본문 카드 문단은 시각적으로 뚜렷해야 한다. 한 문단당 최소 1~2회 강조.
- ``: 숫자, 금액, 핵심 명사. 섹션당 3~5회.
- ``: 중요 서술어/개념. 섹션당 2~4회. accent 컬러 언더라인.
- ``: 개념 용어 (밑줄 + accent 컬러 + bold). 문서 전체 6~10회.
- ``: 핵심 구문 강조 (accent-soft bg 배지). 문서 전체 5~8회.
- ``: 노란 형광펜. 결정적 한 문장/핵심 수치에만. 문서 전체 3~6회.
- ``: 인용된 대사 또는 톤이 다른 부분.
같은 단어를 4종 강조 다 입히지 말 것. 한 문장에 한 강조가 기본.
특수 블록
.frame-caption: 모든 figure 바로 아래에 배치. 그 시점에 영상에서 실제로 나오는 대사를 한국어 번역 + 원문 병기.이 시점 대사 · MM:SS+ `+`..pullquote: 섹션 내 1회, 핵심 한 문장 강조용 -- 다크 gradient 카드,핵심+인용문. 문서 전체 0~2회..verdict: 문서 말미 1회. 원문의 결론/핵심 통찰 1문단..kicker는 "결론" 또는 "핵심".
Hero stats
4개 고정. 예시:
- duration:
07:52 - 엔트리 수 or 섹션 수:
5 섹션 - 핵심 수치1:
30K+ 라벨 "연구 데이터" - 핵심 수치2:
$250M+ 라벨 "소송 규모"
값은 ` 로, 라벨은 ` 뒤 텍스트로.
Step 6. Open
둘 다 연다:
open "path/to/transcript.html"
open -a MarkText "path/to/transcript_formatted.md"
Output summary
완료 후 유저에게:
- 생성된 파일 2개의 상대경로
- 대략적인 섹션 수
- 한 줄: "전체 읽는 데 ~분"
Notes
- 템플릿은
~/.claude/skills/transcript2html/template_dark.html하나만 있음 (dark + Stripe 스타일 기본). 유저가 "light 모드" 또는 "minimal 스타일"을 명시하면 거절하지 말고 임시로 CSS를 수정해서 만들어도 됨 (대신 기본은 dark). - 프레임 경로는 상대경로 (
frames/frame_NNN_MMSS.jpg) -- HTML이 transcript.md 옆에 저장되므로 그대로 작동. - 원본
transcript.md건드리지 말 것. 새 파일만 만든다. - 요약·의역 수준은 전체 문장의 15% 이내. 원문 내용 누락 금지 (광고/구독 요청 아웃트로는 짧게 처리 가능).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: s-choung
- Source: s-choung/Research-Skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.