# Jamie YouTube Manager - Claude Code > **Purpose**: YouTube SEO Auditor & Content Manager for Jamie Plastic Surgery Clinic (제이미성형외과) > **Platform**: Claude Code (CLI) > **Input**: YouTube URLs, video metadata, or exported data > **Output**: Audit reports, optimized metadata, schema markup, API batch updates --- ## Capabilities | Feature | Input | Output | |---------|-------|--------| | Video SEO Audit | YouTube URL or metadata | Detailed checklist + score | | Metadata Optimization | Current title/description | Optimized versions | | Chapter Generation | Video transcript/topics | Timestamp list | | Schema Generation | Video details | JSON-LD markup | | Description Writing | Video topic | SEO-optimized description | | Shorts Optimization | Shorts content | Optimization checklist | | **Batch Metadata Update** | T&D document | YouTube API batch update | | **Video Info Fetch** | YouTube URL(s) | Detailed video info + stats | | **API Connection Test** | OAuth credentials | Connection status | --- ## YouTube API Integration ### Prerequisites 1. **Google Cloud Project**: `ourdigital-insights` 2. **YouTube Data API v3**: Enabled 3. **OAuth Credentials**: Desktop app type ### Setup ```bash # Navigate to scripts directory cd ~/Project/claude-skills-factory/custom-skills/43-jamie-youtube-manager/code/scripts # Activate virtual environment source venv/bin/activate # Required packages (already installed) pip install google-api-python-client google-auth-oauthlib python-dotenv ``` ### Environment Configuration `.env` file structure: ``` GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= GOOGLE_PROJECT_ID=ourdigital-insights GOOGLE_CLIENT_SECRETS_FILE=/Users/ourdigital/.config/gcloud/keys/jamie-youtube-manager.json ``` ### API Scripts #### 1. Connection Test (`jamie_youtube_api_test.py`) Tests OAuth authentication and video access: ```bash source jamie_youtube_venv/bin/activate python jamie_youtube_api_test.py ``` **Output**: - Authenticated channel info - Video access verification - Credential status #### 2. Video Info (`jamie_video_info.py`) Fetches detailed video information from URLs or video IDs: ```bash # Single video by URL python jamie_video_info.py https://youtu.be/P-ovr-aaD1E # Multiple videos python jamie_video_info.py URL1 URL2 URL3 # Verbose mode (includes description & tags) python jamie_video_info.py VIDEO_ID -v # JSON output python jamie_video_info.py VIDEO_ID --json ``` **Output**: - Video title, URL, channel - Published date, privacy status, duration - Statistics (views, likes, comments) - Jamie channel badge (🏥 Jamie vs External) - Description and tags (verbose mode) #### 3. Channel Status (`jamie_channel_status.py`) Check current status of Jamie YouTube channel and all 18 videos: ```bash python jamie_channel_status.py ``` **Output**: - Channel statistics (subscribers, views, video count) - All 18 video status (title, privacy, views, duration) - Summary by privacy status #### 4. Batch Metadata Update (`jamie_youtube_batch_update.py`) Updates video titles and descriptions via YouTube API: ```bash # Dry-run mode (preview only) python jamie_youtube_batch_update.py --dry-run # Execute actual updates python jamie_youtube_batch_update.py --execute # Update specific video python jamie_youtube_batch_update.py --execute --video-id VIDEO_ID ``` **Features**: - Dry-run mode for safe testing - Batch update all 18 Jamie videos - Common footer auto-appended - OAuth token persistence --- ## Core Workflows ### 1. Video SEO Audit When user provides a YouTube URL or video details: **Audit Checklist**: ```markdown ## Video Audit Report 📹 **Video**: [Title] 🔗 **URL**: [URL] 📅 **Audit Date**: [Date] ━━━━━━━━━━━━━━━━━━━━ 📊 OVERALL SCORE: [X]/100 ━━━━━━━━━━━━━━━━━━━━ ### Title Analysis [X/6] - [ ] Length: 60-70 chars (Korean ~30자) - [ ] Primary keyword in first 40 chars - [ ] Brand "제이미성형외과" included - [ ] Clear benefit/value - [ ] No clickbait - [ ] Proper separators (|, -) ### Description Analysis [X/11] - [ ] First 150 chars meaningful - [ ] Timestamps included - [ ] Primary keyword present - [ ] CTA included - [ ] Website/booking links - [ ] Social links - [ ] Related videos linked - [ ] 3-5 hashtags - [ ] Medical disclaimer - [ ] 200+ words total - [ ] Contact information ### Chapters [X/6] - [ ] Timestamps present - [ ] Starts at 00:00 - [ ] 3+ chapters (if > 5 min) - [ ] Descriptive labels - [ ] Korean labels - [ ] Proper format (MM:SS) ### Captions [X/5] - [ ] Korean captions available - [ ] English subtitles - [ ] Medical terms accurate - [ ] Brand name correct - [ ] Timing synced ### Schema Readiness [X/5] - [ ] Title matches VideoObject name - [ ] Description meaningful - [ ] Duration available - [ ] Thumbnail URL accessible - [ ] Upload date present ━━━━━━━━━━━━━━━━━━━━ 🎯 TOP 3 PRIORITIES ━━━━━━━━━━━━━━━━━━━━ 1. [Action 1] 2. [Action 2] 3. [Action 3] ``` ### 2. Optimize Title **Formula**: ``` [시술명] + [핵심 베네핏] | 제이미성형외과 ``` **Examples**: ``` Before: "이마거상술 설명 영상" After: "내시경 이마거상술 | 자연스러운 동안 효과의 비밀 | 제이미성형외과" Before: "쌍꺼풀 수술" After: "퀵매몰법 쌍꺼풀 | 티안나게 자연스럽게 | 제이미성형외과" ``` ### 3. Generate Description **Template**: ``` [시술명]의 원리부터 회복까지, 제이미성형외과 정기호 원장이 자세히 설명합니다. ⏱️ 타임스탬프 00:00 인트로 [Generated timestamps] 📋 영상 내용 [Content summary with keywords] 🏥 제이미성형외과 📍 주소: 서울시 강남구 압구정로 XXX 📞 상담예약: 02-XXX-XXXX 🔗 홈페이지: https://jamieps.com 📱 카카오톡: @제이미성형외과 ▶️ 관련 영상 • [Related video 1] • [Related video 2] ※ 본 영상은 정보 제공 목적이며, 개인에 따라 결과가 다를 수 있습니다. 부작용: 출혈, 감염, 염증 등이 발생할 수 있습니다. #제이미성형외과 #[시술명] #압구정성형외과 ``` ### 4. Generate Chapters/Timestamps When user provides transcript or video structure: **Output Format**: ``` 00:00 인트로 01:00 [시술명]이란? 03:00 수술 과정 설명 05:30 회복 기간 및 주의사항 08:00 자주 묻는 질문 10:00 마무리 및 상담 안내 ``` **Rules**: - Must start at 00:00 - Minimum 3 chapters for videos > 5 min - Each chapter > 10 seconds - Descriptive Korean labels ### 5. Generate VideoObject Schema **Execute**: ```bash # Generate JSON-LD schema for website embedding ``` **Output**: ```json { "@context": "https://schema.org", "@type": "VideoObject", "name": "[Video Title]", "description": "[First 160 chars of description]", "thumbnailUrl": "https://img.youtube.com/vi/[VIDEO_ID]/maxresdefault.jpg", "uploadDate": "[YYYY-MM-DD]T09:00:00+09:00", "duration": "PT[X]M[Y]S", "contentUrl": "https://www.youtube.com/watch?v=[VIDEO_ID]", "embedUrl": "https://www.youtube.com/embed/[VIDEO_ID]", "publisher": { "@type": "Organization", "name": "제이미성형외과", "logo": { "@type": "ImageObject", "url": "https://jamieps.com/logo.png" } } } ``` **With Chapters (Clip Schema)**: ```json { "@context": "https://schema.org", "@type": "VideoObject", "name": "[Title]", "hasPart": [ { "@type": "Clip", "name": "인트로", "startOffset": 0, "endOffset": 60, "url": "https://www.youtube.com/watch?v=[ID]&t=0" }, { "@type": "Clip", "name": "[Chapter 2]", "startOffset": 60, "endOffset": 180, "url": "https://www.youtube.com/watch?v=[ID]&t=60" } ] } ``` ### 6. Shorts Optimization **Checklist**: ```markdown ## Shorts Audit - [ ] Duration < 60 seconds - [ ] 9:16 vertical format - [ ] Hook in first 2 seconds - [ ] Text overlays readable - [ ] #Shorts hashtag included - [ ] 2-3 relevant hashtags - [ ] Clear CTA - [ ] No bottom 20% text (UI overlap) ``` **Shorts Title Format**: ``` [키워드] + [핵심 내용] #Shorts 예: "쌍꺼풀 자연스럽게 만드는 비결 #Shorts" ``` ### 7. Playlist Audit When user provides playlist URL: **Checklist**: ```markdown ## Playlist Audit - [ ] Descriptive title with keyword - [ ] Description 200+ characters - [ ] Logical video order - [ ] Consistent thumbnails - [ ] No duplicate content - [ ] Complete topic coverage ``` **Recommended Jamie Playlists**: 1. 눈성형 시리즈 2. 이마/리프팅 시리즈 3. 자주 묻는 질문 FAQ 4. 원장 토크 5. 수술 후 관리 --- ## Tags Database **Brand Tags**: ``` 제이미성형외과, Jamie Plastic Surgery, 압구정성형외과 ``` **Procedure Tags**: | Category | Tags | |----------|------| | 눈 | 쌍꺼풀, 눈성형, 눈매교정, 안검하수, 눈밑지방재배치 | | 이마 | 이마거상술, 내시경이마거상, 눈썹거상술 | | 리프팅 | 스마스리프팅, 얼굴리프팅, 동안성형 | **Rule**: 15-20 tags total, under 500 characters --- ## Internationalization (i18n) **Priority Languages**: | Language | Priority | Target | |----------|----------|--------| | Korean (ko) | Required | 내국인 | | English (en) | High | Medical tourism | | Japanese (ja) | Medium | 일본 의료관광 | | Chinese (zh) | Medium | 중국 의료관광 | **Localized Title Example**: ``` KO: 내시경 이마거상술 | 자연스러운 동안 효과 | 제이미성형외과 EN: Endoscopic Forehead Lift | Natural Rejuvenation | Jamie Plastic Surgery JA: 内視鏡額リフト | 自然な若返り | ジェイミー整形外科 ``` --- ## Medical Compliance (의료광고법) **YouTube Specific Rules**: ✅ **Allowed**: - Educational procedure explanations - General recovery information - Doctor credentials - Facility tours ❌ **Prohibited**: - Patient testimonials - Before/After without disclaimers - Guaranteed results claims - Price comparisons **Required Disclaimer**: ``` ※ 본 영상은 정보 제공 목적이며, 개인에 따라 결과가 다를 수 있습니다. 수술 전 반드시 전문의와 상담하시기 바랍니다. 부작용: 출혈, 감염, 염증 등이 발생할 수 있습니다. ``` --- ## Usage Examples ``` User: "이 유튜브 영상 SEO 분석해줘: https://youtube.com/watch?v=xxx" User: "이 영상 제목 최적화해줘: '이마거상술 설명'" User: "퀵매몰법 영상 설명란 작성해줘" User: "이 영상의 챕터 타임스탬프 만들어줘" [transcript] User: "이 영상 VideoObject 스키마 생성해줘" User: "쇼츠 최적화 체크리스트 확인해줘" User: "영어 자막/메타데이터 추천해줘" ``` --- ## Integration - **jamie-brand-editor**: Video script writing - **jamie-brand-guardian**: Content compliance review - **jamie-instagram-manager**: Cross-platform strategy --- ## File Structure ``` 43-jamie-youtube-manager/ ├── code/ │ ├── CLAUDE.md # This file (Claude Code skill) │ ├── scripts/ │ │ ├── jamie_youtube_api_test.py # API connection test │ │ ├── jamie_video_info.py # Video info fetcher (URL-based) │ │ ├── jamie_channel_status.py # Channel & video status │ │ ├── jamie_youtube_batch_update.py # Batch metadata updater │ │ ├── jamie_youtube_token.pickle # OAuth token (cached) │ │ ├── venv/ # Python virtual environment │ │ └── .env # Environment variables │ ├── output/ │ │ └── jamie_youtube_td_final.md # T&D document (18 videos) │ └── references/ │ └── ... └── desktop/ ├── SKILL.md # Claude Desktop skill └── references/ └── ... ``` --- ## Video Inventory (18 Videos) | No | Video ID | 시술명 | 길이 | |---|---|---|---| | 0 | P-ovr-aaD1E | 병원 소개 | 0:33 | | 1 | qZQwAX6Onj0 | 눈 성형 | 1:27 | | 2 | _m6H4F_nLYU | 퀵 매몰법 | 1:28 | | 3 | CBAGAY_b0HU | 하이브리드 쌍꺼풀 | 1:33 | | 4 | TxFajDli1QQ | 안검하수 눈매교정술 | 1:53 | | 5 | Ey5eR4dCi_I | 눈밑지방 재배치 | 1:38 | | 6 | ffUmrE-Ckt0 | 듀얼 트임 수술 | 1:42 | | 7 | 1MA0OJJYcQk | 눈썹밑 피부절개술 | 1:33 | | 8 | UoeOnT1j41Y | 눈 재수술 | 1:59 | | 9 | a7FcFMiGiTs | 이마 성형 | 3:44 | | 10 | lIq816rp4js | 내시경 이마 거상술 | 3:42 | | 11 | EwgtJUH46dc | 내시경 눈썹 거상술 | 3:50 | | 12 | gfbJlqlAIfg | 동안 성형 | 1:51 | | 13 | lRtAatuhcC4 | 동안 시술 | 2:21 | | 14 | 7saghBp2a_A | 앞광대 리프팅 | 1:44 | | 15 | Mq6zcx_8owY | 스마스 리프팅 | 1:56 | | 16 | _bCJDZx2L2I | 자가 지방이식 | 1:47 | | 17 | kXbP1T6ICxY | 하이푸 리프팅 | 1:50 | --- ## Quick Reference Commands ```bash # Navigate to scripts directory cd ~/Project/claude-skills-factory/custom-skills/43-jamie-youtube-manager/code/scripts # Activate environment source venv/bin/activate # Test API connection python jamie_youtube_api_test.py # Get specific video info from URL python jamie_video_info.py https://youtu.be/VIDEO_ID -v # Check channel & video status python jamie_channel_status.py # Preview batch update python jamie_youtube_batch_update.py --dry-run # Execute batch update python jamie_youtube_batch_update.py --execute ``` --- *Version 1.1.0 | Claude Code | 2025-12-26* *Added: YouTube Data API v3 integration, batch metadata update*