@yeongjaeyou/claude-code-config 0.18.6 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/.claude/agents/web-researcher.md +68 -4
  2. package/.claude/commands/gh/auto-review-loop.md +2 -2
  3. package/.claude/commands/gh/decompose-issue.md +12 -12
  4. package/.claude/commands/gh/resolve-and-review.md +1 -1
  5. package/.claude/guidelines/id-reference.md +2 -2
  6. package/.claude/guidelines/prd-guide.md +13 -13
  7. package/.claude/guidelines/work-guidelines.md +15 -1
  8. package/.claude/hooks/notify_osc.sh +7 -7
  9. package/.claude/skills/code-explorer/SKILL.md +21 -21
  10. package/.claude/skills/interview-methodology/SKILL.md +196 -0
  11. package/.claude/skills/midjourney-imagineapi/SKILL.md +260 -0
  12. package/.claude/skills/midjourney-imagineapi/references/imagineapi-integration.md +197 -0
  13. package/.claude/skills/midjourney-imagineapi/references/midjourney-parameters.md +393 -0
  14. package/.claude/skills/midjourney-imagineapi/references/midjourney-style-guide.md +296 -0
  15. package/.claude/skills/midjourney-imagineapi/references/prompt-examples.md +428 -0
  16. package/.claude/skills/notion-md-uploader/scripts/__pycache__/markdown_parser.cpython-311.pyc +0 -0
  17. package/.claude/skills/notion-md-uploader/scripts/__pycache__/notion_client.cpython-311.pyc +0 -0
  18. package/.claude/skills/notion-md-uploader/scripts/__pycache__/notion_converter.cpython-311.pyc +0 -0
  19. package/.claude/skills/notion-md-uploader/scripts/__pycache__/upload_md.cpython-311.pyc +0 -0
  20. package/package.json +1 -1
  21. package/.claude/skills/youtube-collector/README.md +0 -107
  22. package/.claude/skills/youtube-collector/SKILL.md +0 -158
  23. package/.claude/skills/youtube-collector/references/data-schema.md +0 -110
  24. package/.claude/skills/youtube-collector/scripts/collect_videos.py +0 -304
  25. package/.claude/skills/youtube-collector/scripts/fetch_transcript.py +0 -138
  26. package/.claude/skills/youtube-collector/scripts/fetch_videos.py +0 -229
  27. package/.claude/skills/youtube-collector/scripts/register_channel.py +0 -247
  28. package/.claude/skills/youtube-collector/scripts/setup_api_key.py +0 -151
@@ -0,0 +1,428 @@
1
+ # Midjourney V7 Prompt Examples
2
+
3
+ Before/after transformations showing how to enhance basic requests into optimized V7 prompts.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Portrait Photography](#portrait-photography)
8
+ - [Landscape/Environment](#landscapeenvironment)
9
+ - [Product Photography](#product-photography)
10
+ - [Architectural Photography](#architectural-photography)
11
+ - [Conceptual/Artistic](#conceptualartistic)
12
+ - [Automotive](#automotive)
13
+ - [Wildlife](#wildlife)
14
+ - [Food Photography](#food-photography)
15
+ - [Character Consistency Examples](#character-consistency-examples)
16
+ - [Transformation Principles](#transformation-principles)
17
+
18
+ ---
19
+
20
+ ## Portrait Photography
21
+
22
+ ### Example 1: Simple Portrait
23
+
24
+ **User Request:**
25
+ "A woman in a field"
26
+
27
+ **Enhanced Prompt:**
28
+ ```
29
+ Woman with flowing hair standing in golden wheat field, centered composition, editorial portrait photography, golden hour sunlight from behind creating rim light, warm and ethereal mood, shot on Canon R5 85mm f/1.4, shallow depth of field with soft bokeh background, warm color grading --ar 4:5 --s 150 --q 2
30
+ ```
31
+
32
+ **Why It Works:**
33
+ - Adds specific composition (centered)
34
+ - Defines style (editorial portrait)
35
+ - Describes lighting (golden hour, rim light)
36
+ - Establishes mood (warm and ethereal)
37
+ - Includes technical specs (Canon R5 85mm f/1.4)
38
+ - Specifies depth of field and bokeh
39
+ - Parameters: vertical portrait ratio, moderate stylize, enhanced quality
40
+
41
+ ### Example 2: Character Portrait
42
+
43
+ **User Request:**
44
+ "Portrait of an old fisherman"
45
+
46
+ **Enhanced Prompt:**
47
+ ```
48
+ Weathered fisherman with grey beard and sun-worn face, three-quarter profile close-up, cinematic portrait photography, soft diffused natural light from window, intimate and contemplative mood, shot on Hasselblad 80mm f/2.8, shallow depth of field, muted earth tones with desaturated blues --ar 4:5 --s 100 --q 2
49
+ ```
50
+
51
+ **Why It Works:**
52
+ - Rich character details (weathered, grey beard, sun-worn)
53
+ - Specific framing (three-quarter profile close-up)
54
+ - Professional category (cinematic portrait)
55
+ - Natural lighting specified (soft diffused window light)
56
+ - Emotional tone (intimate and contemplative)
57
+ - Medium format camera reference adds authenticity
58
+ - Color palette defined (muted earth tones, desaturated blues)
59
+
60
+ ### Example 3: Fashion Portrait
61
+
62
+ **User Request:**
63
+ "Model in elegant dress"
64
+
65
+ **Enhanced Prompt:**
66
+ ```
67
+ Fashion model in flowing black silk evening gown, elegant pose with hand on hip, minimal studio setting, dramatic side lighting with rim light accent, high fashion editorial aesthetic, shot on Phase One medium format 80mm, shallow depth of field, monochromatic with rich tonal depth --ar 2:3 --s 200
68
+ ```
69
+
70
+ **Why It Works:**
71
+ - Specific garment details (flowing black silk evening gown)
72
+ - Defined pose (hand on hip)
73
+ - Clear setting (minimal studio)
74
+ - Complete lighting setup (side lighting with rim light)
75
+ - Fashion-specific style (high fashion editorial)
76
+ - Premium equipment reference (Phase One medium format)
77
+ - Color treatment (monochromatic with tonal depth)
78
+
79
+ ---
80
+
81
+ ## Landscape/Environment
82
+
83
+ ### Example 4: Mountain Landscape
84
+
85
+ **User Request:**
86
+ "Beautiful mountain view"
87
+
88
+ **Enhanced Prompt:**
89
+ ```
90
+ Majestic snow-capped mountain peaks rising above clouds, wide angle establishing shot, early morning golden hour, light mist in valleys, cinematic landscape photography, dramatic side lighting highlighting mountain ridges, shot on Sony A7R IV 24mm, deep focus front to back, rich color saturation with cool blues and warm highlights --ar 16:9 --s 200 --q 2
91
+ ```
92
+
93
+ **Why It Works:**
94
+ - Vivid scene description (snow-capped peaks, above clouds)
95
+ - Composition specified (wide angle establishing shot)
96
+ - Perfect timing (early morning golden hour)
97
+ - Atmospheric details (light mist in valleys)
98
+ - Lighting direction (side lighting on ridges)
99
+ - Technical specs (Sony A7R IV 24mm)
100
+ - Focus treatment (deep focus)
101
+ - Color palette (cool blues, warm highlights)
102
+
103
+ ### Example 5: Urban Night Scene
104
+
105
+ **User Request:**
106
+ "City street at night"
107
+
108
+ **Enhanced Prompt:**
109
+ ```
110
+ Neon-lit Tokyo street after rain, wet pavement reflecting colorful signs, bustling crowds with motion blur, cinematic urban photography, blue hour twilight with glowing neon lights, shot on Sony A7R IV 35mm, medium depth of field isolating foreground, vibrant orange and teal color grading, atmospheric haze --ar 16:9 --s 250 --q 2
111
+ ```
112
+
113
+ **Why It Works:**
114
+ - Specific location flavor (Tokyo, neon-lit)
115
+ - Visual interest (wet pavement reflections)
116
+ - Dynamic elements (bustling crowds, motion blur)
117
+ - Time of day (blue hour)
118
+ - Lighting character (glowing neon)
119
+ - Popular color scheme (orange and teal)
120
+ - Atmosphere (haze)
121
+
122
+ ### Example 6: Coastal Landscape
123
+
124
+ **User Request:**
125
+ "Beach sunset"
126
+
127
+ **Enhanced Prompt:**
128
+ ```
129
+ Rugged coastal rocks in foreground with crashing waves, dramatic sunset over ocean horizon, long exposure creating smooth water, golden hour with scattered clouds, cinematic coastal photography, warm side lighting, shot on Canon R5 24mm, wide angle perspective, rich warm color grading with orange and purple tones --ar 16:9 --s 200
130
+ ```
131
+
132
+ **Why It Works:**
133
+ - Strong foreground (rugged coastal rocks, crashing waves)
134
+ - Compositional depth (foreground to horizon)
135
+ - Technical technique implied (long exposure)
136
+ - Time and conditions (golden hour, scattered clouds)
137
+ - Lighting quality (warm side lighting)
138
+ - Wide angle for epic feel
139
+ - Sunset colors specified (orange and purple)
140
+
141
+ ---
142
+
143
+ ## Product Photography
144
+
145
+ ### Example 7: Luxury Watch
146
+
147
+ **User Request:**
148
+ "Photo of a watch"
149
+
150
+ **Enhanced Prompt:**
151
+ ```
152
+ Luxury Swiss watch with leather strap on polished marble surface, editorial product photography, studio lighting with subtle reflections highlighting sapphire crystal, minimalist composition with negative space, shot on Phase One medium format 80mm macro, tack sharp focus on watch face, emphasize brushed metal and leather texture, neutral background --ar 1:1 --s 50
153
+ ```
154
+
155
+ **Why It Works:**
156
+ - Product specificity (luxury Swiss watch, leather strap)
157
+ - Premium surface (polished marble)
158
+ - Professional category (editorial product photography)
159
+ - Detailed lighting setup (studio with subtle reflections)
160
+ - Material highlights (sapphire crystal)
161
+ - Composition approach (minimalist, negative space)
162
+ - Texture emphasis (brushed metal, leather)
163
+ - Low stylize for accurate product representation
164
+
165
+ ### Example 8: Tech Product
166
+
167
+ **User Request:**
168
+ "Headphones product shot"
169
+
170
+ **Enhanced Prompt:**
171
+ ```
172
+ Premium wireless headphones floating on clean white background, modern product photography, soft studio lighting from multiple angles, minimal shadows, shot on Canon R5 100mm macro, tack sharp focus throughout, emphasize matte black finish and metal accents, neutral tones, Apple-style minimal aesthetic --ar 1:1 --s 50 --q 2
173
+ ```
174
+
175
+ **Why It Works:**
176
+ - Product quality tier (premium wireless)
177
+ - Clean presentation (floating on white)
178
+ - Professional lighting (studio, multiple angles, minimal shadows)
179
+ - Macro lens for detail
180
+ - Complete focus (tack sharp throughout)
181
+ - Material callouts (matte black, metal accents)
182
+ - Brand aesthetic reference (Apple-style)
183
+ - Square format for product showcase
184
+
185
+ ---
186
+
187
+ ## Architectural Photography
188
+
189
+ ### Example 9: Modern Building
190
+
191
+ **User Request:**
192
+ "Modern office building"
193
+
194
+ **Enhanced Prompt:**
195
+ ```
196
+ Contemporary glass and steel skyscraper, low angle perspective looking up, blue hour twilight with interior lights glowing, urban cityscape background, architectural photography, clean geometric lines and reflective surfaces, shot on Canon R5 24mm tilt-shift, deep focus, cool color grading with blue tones --ar 9:16 --s 100
197
+ ```
198
+
199
+ **Why It Works:**
200
+ - Material specificity (glass and steel)
201
+ - Strong perspective (low angle looking up)
202
+ - Optimal timing (blue hour twilight)
203
+ - Visual interest (interior lights glowing)
204
+ - Architectural elements (geometric lines, reflective surfaces)
205
+ - Specialized lens (tilt-shift for architecture)
206
+ - Color palette (cool blues)
207
+ - Vertical format for tall building
208
+
209
+ ### Example 10: Historic Architecture
210
+
211
+ **User Request:**
212
+ "Old church building"
213
+
214
+ **Enhanced Prompt:**
215
+ ```
216
+ Gothic cathedral with intricate stone facade, symmetrical frontal composition, golden hour sunlight illuminating weathered details, dramatic shadows emphasizing architectural depth, fine art architectural photography, shot on Hasselblad medium format 50mm, tilt-shift perspective correction, rich warm tones with deep shadows, emphasize carved stone textures and stained glass windows --ar 4:5 --s 150 --q 2
217
+ ```
218
+
219
+ **Why It Works:**
220
+ - Architectural style (Gothic cathedral)
221
+ - Detail emphasis (intricate stone facade)
222
+ - Classical composition (symmetrical frontal)
223
+ - Dramatic lighting (golden hour, shadows)
224
+ - Fine art approach
225
+ - Period-appropriate colors (warm tones, deep shadows)
226
+ - Texture and feature callouts (carved stone, stained glass)
227
+
228
+ ---
229
+
230
+ ## Conceptual/Artistic
231
+
232
+ ### Example 11: Surreal Scene
233
+
234
+ **User Request:**
235
+ "Surreal desert landscape"
236
+
237
+ **Enhanced Prompt:**
238
+ ```
239
+ Lone tree growing from cracked desert earth under impossible floating rocks, surreal landscape photography, late afternoon golden light, dreamlike and otherworldly atmosphere, shot on Hasselblad 80mm, deep focus, rich color saturation with warm desert tones and cool sky blues, inspired by Salvador Dali surrealism --ar 16:9 --s 400 --w 100
240
+ ```
241
+
242
+ **Why It Works:**
243
+ - Clear surreal element (floating rocks)
244
+ - Grounding detail (lone tree, cracked earth)
245
+ - Mood establishment (dreamlike and otherworldly)
246
+ - Focus approach (deep focus for surreal clarity)
247
+ - Color specificity (warm desert, cool sky)
248
+ - Artistic reference (Salvador Dali)
249
+ - Higher stylize and weird for artistic interpretation
250
+
251
+ ### Example 12: Atmospheric Portrait
252
+
253
+ **User Request:**
254
+ "Mysterious person in fog"
255
+
256
+ **Enhanced Prompt:**
257
+ ```
258
+ Silhouette of figure in long coat standing in dense fog, minimal visibility creating mystery, moody atmospheric photography, diffused overcast light, blue-grey color grading, shot on Sony A7R IV 85mm f/1.8, shallow depth of field with fog creating natural depth, noir cinematography aesthetic --ar 16:9 --s 200 --exp 10
259
+ ```
260
+
261
+ **Why It Works:**
262
+ - Character suggestion (silhouette, long coat)
263
+ - Atmosphere (dense fog, minimal visibility)
264
+ - Lighting type (diffused overcast)
265
+ - Color palette (blue-grey grading)
266
+ - Depth technique (fog as depth element)
267
+ - Strong aesthetic reference (noir cinematography)
268
+ - Emotional tone (dramatic and mysterious)
269
+ - Light experimental enhancement
270
+
271
+ ---
272
+
273
+ ## Automotive
274
+
275
+ ### Example 13: Classic Car
276
+
277
+ **User Request:**
278
+ "Vintage car photo"
279
+
280
+ **Enhanced Prompt:**
281
+ ```
282
+ 1960s vintage convertible parked on coastal highway overlook, sunset ocean view in background, automotive editorial photography, golden hour side lighting, warm nostalgic color grading with slight film grain, shot on Canon R5 50mm f/1.4, shallow depth of field isolating car, emphasize chrome details and period-correct paint --ar 16:9 --s 150
283
+ ```
284
+
285
+ **Why It Works:**
286
+ - Era specificity (1960s, convertible)
287
+ - Evocative setting (coastal highway overlook, ocean view)
288
+ - Perfect timing (golden hour)
289
+ - Mood through color (warm nostalgic, film grain)
290
+ - Focus strategy (shallow DOF, car isolated)
291
+ - Detail emphasis (chrome, period paint)
292
+ - Widescreen cinematic format
293
+
294
+ ### Example 14: Modern Vehicle
295
+
296
+ **User Request:**
297
+ "Sports car"
298
+
299
+ **Enhanced Prompt:**
300
+ ```
301
+ Modern supercar in minimalist studio environment, low dramatic lighting creating strong shadows, automotive commercial photography, three-quarter front angle, shot on Phase One medium format 80mm, emphasize aerodynamic lines and reflective paint surface, cool color grading with metallic highlights, sleek and powerful aesthetic --ar 16:9 --s 100 --q 2
302
+ ```
303
+
304
+ **Why It Works:**
305
+ - Vehicle type (modern supercar)
306
+ - Clean setting (minimalist studio)
307
+ - Dramatic lighting (low angle, strong shadows)
308
+ - Standard automotive angle (three-quarter front)
309
+ - Design emphasis (aerodynamic lines)
310
+ - Material callout (reflective paint)
311
+ - Color treatment (cool with metallic highlights)
312
+
313
+ ---
314
+
315
+ ## Wildlife
316
+
317
+ ### Example 15: Animal Portrait
318
+
319
+ **User Request:**
320
+ "Photo of a wolf"
321
+
322
+ **Enhanced Prompt:**
323
+ ```
324
+ Grey wolf standing alert in snowy forest clearing, winter landscape, wildlife documentary photography, soft overcast light, intimate eye contact with camera, shot on Canon R3 400mm f/2.8, shallow depth of field with blurred snow-covered trees, cool color palette with muted earth tones, emphasize fur texture and intense eyes --ar 3:2 --s 100 --q 2
325
+ ```
326
+
327
+ **Why It Works:**
328
+ - Species and behavior (grey wolf, standing alert)
329
+ - Contextual setting (snowy forest clearing, winter)
330
+ - Professional category (wildlife documentary)
331
+ - Appropriate lighting (soft overcast for winter)
332
+ - Connection element (eye contact)
333
+ - Wildlife lens (400mm telephoto)
334
+ - Subject isolation (shallow DOF, blurred background)
335
+ - Detail emphasis (fur texture, eyes)
336
+
337
+ ---
338
+
339
+ ## Food Photography
340
+
341
+ ### Example 16: Gourmet Dish
342
+
343
+ **User Request:**
344
+ "Food photography of pasta"
345
+
346
+ **Enhanced Prompt:**
347
+ ```
348
+ Artisanal handmade pasta in white ceramic bowl, rustic wooden table setting, editorial food photography, natural window light from side creating soft shadows, garnished with fresh herbs and parmesan, shot on Canon R5 50mm f/2.8 macro, shallow depth of field with foreground bokeh, warm color grading with earthy tones --ar 4:5 --s 100
349
+ ```
350
+
351
+ **Why It Works:**
352
+ - Dish quality (artisanal handmade pasta)
353
+ - Presentation (white ceramic bowl)
354
+ - Setting atmosphere (rustic wooden table)
355
+ - Food photography lighting (natural window, soft shadows)
356
+ - Styling details (fresh herbs, parmesan garnish)
357
+ - Macro lens for detail
358
+ - Focus strategy (shallow DOF, foreground bokeh)
359
+ - Appetite-appeal colors (warm, earthy)
360
+
361
+ ---
362
+
363
+ ## Character Consistency Examples
364
+
365
+ ### With Omni Reference
366
+
367
+ **User Request:**
368
+ "Same character in different scene"
369
+
370
+ **Enhanced Prompt:**
371
+ ```
372
+ [character description matching reference], standing in futuristic cityscape, cinematic photography, neon lighting, shot on Canon R5 35mm, cyberpunk atmosphere --ar 16:9 --s 150 --oref <character_url> --ow 200
373
+ ```
374
+
375
+ ### Style + Character Combined
376
+
377
+ **User Request:**
378
+ "Character in specific art style"
379
+
380
+ **Enhanced Prompt:**
381
+ ```
382
+ [character description], illustrated in watercolor style, soft dreamy atmosphere, pastel color palette --ar 1:1 --s 200 --oref <character_url> --ow 150 --sref <watercolor_style_url> --sw 300
383
+ ```
384
+
385
+ ---
386
+
387
+ ## Transformation Principles
388
+
389
+ ### Enhancement Formula
390
+
391
+ ```
392
+ Basic request
393
+ + Professional category
394
+ + Specific details
395
+ + Lighting description
396
+ + Technical specs
397
+ + Color treatment
398
+ + Composition guidance
399
+ + Quality markers
400
+ + Appropriate parameters
401
+ = Optimized V7 prompt
402
+ ```
403
+
404
+ ### Word Count Management
405
+
406
+ **If under 20 words after enhancement:**
407
+ - Add atmospheric details
408
+ - Include artistic reference
409
+ - Expand color treatment description
410
+ - Add texture or material emphasis
411
+
412
+ **If over 75 words:**
413
+ - Remove redundant quality terms
414
+ - Consolidate similar descriptors
415
+ - Keep most impactful elements
416
+ - Maintain coherent flow
417
+
418
+ ### Parameter Selection Guide
419
+
420
+ | Use Case | Recommended Parameters |
421
+ |----------|----------------------|
422
+ | Portrait | `--ar 4:5 --s 100-150 --q 2` |
423
+ | Landscape | `--ar 16:9 --s 150-250 --q 2` |
424
+ | Product | `--ar 1:1 --s 50-100` |
425
+ | Artistic | `--ar varies --s 300-500 --exp 10-25` |
426
+ | Character consistency | `--oref <url> --ow 150-250` |
427
+ | Style transfer | `--sref <url> --sw 200-400` |
428
+ | Quick iteration | `--draft --c 25-50` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yeongjaeyou/claude-code-config",
3
- "version": "0.18.6",
3
+ "version": "0.19.0",
4
4
  "description": "Claude Code CLI custom commands, agents, and skills",
5
5
  "bin": {
6
6
  "claude-code-config": "./bin/cli.js"
@@ -1,107 +0,0 @@
1
- # YouTube Collector Skill
2
-
3
- 유튜브 채널을 등록하고, 새 컨텐츠를 수집하여 자막 기반 요약을 생성하는 Claude Code skill입니다.
4
-
5
- ## 주요 기능
6
-
7
- - **채널 등록/관리**: 유튜브 채널을 등록하고 관리
8
- - **컨텐츠 수집**: 등록된 채널의 최신 영상 정보 수집
9
- - **자막 수집**: 영상의 자막(transcript) 자동 수집
10
- - **요약 생성**: 자막 또는 설명 기반 요약 생성
11
- - **중복 방지**: 이미 수집된 영상은 자동 스킵
12
-
13
- ## 초기 설정
14
-
15
- ### 1. 필수 패키지 설치
16
- ```bash
17
- pip install google-api-python-client youtube-transcript-api pyyaml
18
- ```
19
-
20
- ### 2. API 키 설정
21
- ```bash
22
- python3 .claude/skills/youtube-collector/scripts/setup_api_key.py
23
- ```
24
-
25
- ## 사용 프롬프트 예시
26
-
27
- ### 채널 등록
28
-
29
- ```
30
- 유튜브 채널 @channelname 등록해줘
31
- ```
32
-
33
- ```
34
- 이 유튜브 채널 등록해줘: https://youtube.com/@examplechannel
35
- ```
36
-
37
- ```
38
- 다음 채널들을 등록해줘:
39
- - @channel1
40
- - @channel2
41
- - @channel3
42
- ```
43
-
44
- ### 컨텐츠 수집
45
-
46
- ```
47
- 등록된 유튜브 채널들의 새 영상 수집해줘
48
- ```
49
-
50
- ```
51
- 유튜브 채널 @channelname의 최신 영상 5개 수집해줘
52
- ```
53
-
54
- ```
55
- 모든 채널에서 새로운 컨텐츠 있는지 확인하고 수집해줘
56
- ```
57
-
58
- ### 수집된 데이터 조회
59
-
60
- ```
61
- 수집된 유튜브 컨텐츠 목록 보여줘
62
- ```
63
-
64
- ```
65
- @channelname 채널에서 수집된 영상들 보여줘
66
- ```
67
-
68
- ```
69
- 최근 수집된 영상 요약 보여줘
70
- ```
71
-
72
- ### 채널 관리
73
-
74
- ```
75
- 등록된 유튜브 채널 목록 보여줘
76
- ```
77
-
78
- ```
79
- @channelname 채널 등록 해제해줘
80
- ```
81
-
82
- ### API 키 관리
83
-
84
- ```
85
- 유튜브 API 키 설정 상태 확인해줘
86
- ```
87
-
88
- ```
89
- 유튜브 API 키 새로 설정해줘
90
- ```
91
-
92
- ## 데이터 저장 위치
93
-
94
- | 데이터 | 경로 |
95
- |--------|------|
96
- | API 키 | `~/.config/youtube-collector/config.yaml` |
97
- | 프로젝트 설정 | `.reference/youtube-config.yaml` |
98
- | 등록된 채널 | `.reference/channels.yaml` |
99
- | 수집된 컨텐츠 | `.reference/contents/{channel}/` |
100
-
101
- ## 스크립트
102
-
103
- | 스크립트 | 설명 |
104
- |----------|------|
105
- | `setup_api_key.py` | API 키 설정 |
106
- | `fetch_videos.py` | 채널 영상 목록 조회 |
107
- | `fetch_transcript.py` | 영상 자막 수집 |
@@ -1,158 +0,0 @@
1
- ---
2
- name: youtube-collector
3
- description: 유튜브 채널을 등록하고 새 컨텐츠를 수집하여 자막 기반 요약을 생성하는 skill. 사용자가 (1) 유튜브 채널 등록/관리를 요청하거나, (2) 등록된 채널의 새 영상 수집을 요청하거나, (3) 유튜브 영상 요약을 요청할 때 사용. 데이터는 .reference/ 폴더에 YAML 형식으로 저장됨.
4
- ---
5
-
6
- # YouTube Collector
7
-
8
- 등록된 유튜브 채널의 새 컨텐츠를 수집하고 자막 기반 요약을 생성.
9
-
10
- ## 사전 요구사항
11
-
12
- **필수 패키지:**
13
- ```bash
14
- pip install google-api-python-client youtube-transcript-api pyyaml
15
- ```
16
-
17
- **API 키 설정:** 보안을 위해 API 키는 사용자 홈 디렉토리에 저장됨.
18
-
19
- ```bash
20
- # API 키 설정 (대화형)
21
- python3 scripts/setup_api_key.py
22
-
23
- # 또는 직접 지정
24
- python3 scripts/setup_api_key.py --api-key YOUR_API_KEY
25
-
26
- # 현재 설정 확인
27
- python3 scripts/setup_api_key.py --show
28
- ```
29
-
30
- **설정 파일 경로:**
31
- - macOS/Linux: `~/.config/youtube-collector/config.yaml`
32
- - Windows: `%APPDATA%\youtube-collector\config.yaml`
33
-
34
- ## 워크플로우
35
-
36
- ### 1. 채널 등록
37
-
38
- 채널 URL 또는 핸들로 등록:
39
-
40
- ```bash
41
- # 핸들로 등록
42
- python3 scripts/register_channel.py --channel-handle @channelname --output-dir .reference/
43
-
44
- # URL로 등록
45
- python3 scripts/register_channel.py --channel-url "https://youtube.com/@channelname" --output-dir .reference/
46
- ```
47
-
48
- **결과:** `.reference/channels.yaml`에 채널 정보가 추가됨.
49
-
50
- ### 2. 컨텐츠 수집
51
-
52
- 스크립트가 영상 목록 조회 + 자막 수집 + YAML 파일 저장을 자동으로 처리:
53
-
54
- ```bash
55
- # 특정 채널 수집
56
- python3 scripts/collect_videos.py --channel-handle @channelname --output-dir .reference/ --max-results 10
57
-
58
- # 등록된 모든 채널 수집
59
- python3 scripts/collect_videos.py --all --output-dir .reference/
60
- ```
61
-
62
- **결과:** `.reference/contents/{channel_handle}/{video_id}.yaml` 파일들이 생성됨.
63
-
64
- ### 3. 요약 생성
65
-
66
- 수집 결과 JSON에서 새로 추가된 영상 확인 후, 각 영상의 YAML 파일에 summary 필드 추가:
67
-
68
- ```yaml
69
- summary:
70
- source: "transcript" # 또는 "description" (자막 없을 때)
71
- content: |
72
- ## 서론
73
- - 문제 제기 또는 주제 소개
74
- - 영상의 목적/배경
75
-
76
- ## 본론
77
- - 핵심 내용 상세 설명
78
- - 해결책, 방법론, 예시 등
79
- - 주요 포인트별 정리
80
-
81
- ## 결론
82
- - 핵심 요약
83
- - 시사점 또는 다음 단계
84
- ```
85
-
86
- **요약 생성 기준:**
87
- - `transcript.available: true` → 자막 기반 요약, `summary.source: "transcript"`
88
- - `transcript.available: false` → 설명 기반 요약, `summary.source: "description"`
89
-
90
- ### 4. 데이터 조회
91
-
92
- 수집된 컨텐츠 확인:
93
- - `.reference/contents/` 폴더 구조 확인
94
- - 특정 채널/영상의 YAML 파일 읽어서 정보 제공
95
-
96
- ## 스크립트 옵션
97
-
98
- ### register_channel.py
99
-
100
- | 옵션 | 설명 |
101
- |------|------|
102
- | `--channel-handle` | 채널 핸들 (@username) |
103
- | `--channel-url` | 채널 URL |
104
- | `--channel-id` | 채널 ID (UC...) |
105
- | `--output-dir` | 저장 디렉토리 (기본: .reference) |
106
-
107
- ### collect_videos.py
108
-
109
- | 옵션 | 설명 |
110
- |------|------|
111
- | `--channel-handle` | 특정 채널 핸들 |
112
- | `--channel-id` | 특정 채널 ID |
113
- | `--all` | channels.yaml의 모든 채널 처리 |
114
- | `--output-dir` | 저장 디렉토리 (기본: .reference) |
115
- | `--max-results` | 채널당 최대 수집 개수 (기본: 10) |
116
- | `--language` | 자막 우선 언어 (기본: ko) |
117
- | `--no-skip-existing` | 기존 파일 덮어쓰기 |
118
-
119
- ## 데이터 구조
120
-
121
- 상세 스키마: [references/data-schema.md](references/data-schema.md)
122
-
123
- ### 영상 데이터 예시
124
- ```yaml
125
- video_id: "abc123"
126
- title: "영상 제목"
127
- published_at: "2025-12-10T10:00:00Z"
128
- url: "https://youtube.com/watch?v=abc123"
129
- thumbnail: "https://..."
130
- description: "영상 설명..."
131
- duration: "PT10M30S"
132
- collected_at: "2025-12-13T15:00:00Z"
133
- transcript:
134
- available: true
135
- language: "ko"
136
- text: "자막 전체..."
137
- summary:
138
- source: "transcript"
139
- content: |
140
- ## 서론
141
- - 영상의 배경 및 목적
142
-
143
- ## 본론
144
- - 핵심 내용 1
145
- - 핵심 내용 2
146
-
147
- ## 결론
148
- - 핵심 요약
149
- ```
150
-
151
- ## 에러 처리
152
-
153
- | 상황 | 안내 메시지 |
154
- |------|------------|
155
- | API 키 미설정 | "YouTube Data API 키가 필요합니다. `python3 scripts/setup_api_key.py`로 설정해주세요." |
156
- | 채널 미등록 | "등록된 채널이 없습니다. 먼저 채널을 등록해주세요." |
157
- | 패키지 미설치 | "필요한 패키지를 설치해주세요: `pip install google-api-python-client youtube-transcript-api pyyaml`" |
158
- | API 할당량 초과 | "YouTube API 할당량이 초과되었습니다. 내일 다시 시도해주세요." |