# Video Downloader — 개선 백로그 > **출처**: 2026-07-26 다차원 코드 감사(9개 차원, 원시 63개 → 상위 15 선정). 모두 실제 소스 기반(file:line 검증). > **사용법**: 완료한 항목은 `- [ ]` → `- [x]` 로 체크. ## 🚀 [진행] 성장·홍보·바이럴 실행 계획 수립 및 기술 인프라 자율 구축 (`docs/GROWTH_PLAN.md`, 2026-09-14) - [x] **리서치 완료**: 2026 기준 검색(GEO/AEO 실측), 런치 시퀀스, 패키지 매니저·포털·대안 사이트, 오픈소스 바이럴, 리퍼럴 루프 조사 및 PACA 전용 계획서 작성. - [x] **헤드풀 브라우징 조사 도구**: `scratch/headful_fetch.mjs` (Playwright, 실제 Chrome 창 + 영속 프로필 + `CDP` 접속 모드) — 봇 차단/JS 전용 페이지 조사용. - [x] **로그인 세션 브라우징 (`scratch/chrome-debug.ps1`, `scratch/headful-real.ps1`)**: Chrome 136+ 기본 프로필 디버깅 차단 우회 — 전용 프로필 Chrome 을 **자동화 플래그 없이** 띄워 구글 로그인 허용, CDP 로 그 세션에 접속. `-FromReal` 로 기존 실제 프로필 로그인/쿠키 복사 지원. (Bing/Naver/Google 관리자 페이지 작업용) - [x] **AI 크롤러 전면 허용 확장 (`site/robots.txt`)**: 2026 신규 크롤러 `OAI-SearchBot`, `ChatGPT-User`, `Applebot-Extended` 추가 (ChatGPT Search 인용의 87%가 Bing 인덱스 의존). - [x] **IndexNow 즉시 색인 인프라**: 키 파일 `site/e9f2c7a4b1d8460f9c3e2a7b5d1f08c4.txt` + `build/indexnow-ping.ps1` (api.indexnow.org·Bing·Naver 배치 제출) + `deploy-site.ps1` 배포 파이프라인 연동. - [x] **Naver Search Advisor 대응 RSS 피드**: `site/feed.xml` (RSS 2.0) + robots/사이트맵/헤드 링크 등록. - [x] **실제 영문 랜딩 페이지 및 Hreflang 유효화**: `site/en/index.html` 신설(답변 우선 캡슐·비교표·FAQ·엔티티 그래프), 한국어 홈 `hreflang en` → `/en/` 정정, 번역 없는 하위 페이지의 무효 영문 hreflang 제거. - [x] **엔티티 그래프 & 답변 우선 가시적 FAQ (`site/index.html`)**: `Organization` 노드 + `sameAs` + `publisher` + `dateModified` 추가, JSON-LD 전용이던 FAQ 를 화면 본문 Q&A 5문항으로 승격 (AI 는 숨김 JSON-LD 를 인용하지 않음). - [x] **비교표 의미론 강화 (`site/vs-idm-alternative.html`)**: `` + `th scope` 부여 (의미론적 비교표는 인용률 +47%). - [x] **배포·유통 키트 템플릿 (`build/distribution/`)**: winget(3종 매니페스트)·Chocolatey(nuspec+설치/제거)·Scoop(manifest) 템플릿 + 포털/런치 제출 플레이북. - [x] **경쟁자별 비교 랜딩 페이지**: `site/vs-yt-dlp.html`(CLI 도구 대비), `site/vs-jdownloader.html`(링크그래버 대비) 신설 — 답변 우선 캡슐·의미론적 비교표·FAQ·내부 링크·사이트맵·RSS·llms.txt 동기화. - [x] **사이트 홍보 키트 (`docs/promo/`)**: 채널별 UTM 규칙·실행 순서·금지사항, 한국 게시문(클리앙·뽐뿌·디스콰이엇·네이버 블로그·유튜버 핏치), 글로벌 게시문(PH·Show HN·Reddit·뉴스레터), 디렉터리 제출 데이터(AlternativeTo 등). - [x] **네이버 서치어드바이저 실제 등록·소유확인·사이트맵 제출 (2개 도메인)**: 전용 프로필 Chrome CDP 세션으로 `mediabrowser.chanpaca.net`(HTML 태그 방식, `site/index.html` 에 `naver-site-verification` 메타 추가)과 `paca.chanpaca.net`(HTML 파일 방식, `site/naverb6e030772fa2a09122a78d79bb2ba1df.html`) 모두 사이트 등록 + 소유확인 완료, 각 `sitemap.xml` 제출(`26.09.14 23:01`/`23:06`). - [x] **Google Search Console (2개 속성)**: `paca.chanpaca.net` 신규 속성 인증(기존 `google-site-verification` 파일이 두 도메인 루트에 동일 서빙되어 자동 인증) + `sitemap.xml` 제출(11페이지 발견), `mediabrowser.chanpaca.net` 사이트맵 재제출. - [x] **Bing Webmaster Tools (2개 사이트)**: `mediabrowser.chanpaca.net` 기존 등록 유지, `paca.chanpaca.net` 을 "Google Search Console에서 가져오기"(GSC OAuth) 로 인증 없이 등록 + `sitemap.xml` 임포트. Bing IndexNow 제출(배포 파이프라인) 200 OK. - [x] **대표 도메인 승격 (`paca.chanpaca.net`) + 301 리디렉트** — 네이버 사이트맵 도메인 불일치 해소: 두 도메인이 같은 `sitemap.xml`·`feed.xml` 을 서빙해 `paca` 제출분의 모든 URL 이 `mediabrowser.chanpaca.net` 이라 네이버 규칙("사이트맵 URL은 소유확인 사이트와 동일 도메인") 위반(유효하지 않음)이었다. 사이트 전체(canonical·og:url·hreflang·JSON-LD·sitemap·RSS·llms)와 앱 공유 랜딩, 배포 매니페스트(winget/choco/scoop), 홍보 UTM 을 **`paca.chanpaca.net` 기준으로 전환**(178곳). 네이버 paca 사이트맵 삭제 후 재제출(`26.09.15 04:52`, paca URL 13개), mediabrowser 사이트맵 제거, GSC paca 사이트맵 재제출(성공·11페이지). **Cloudflare 존 Redirect Rule**(`전체 URI 와일드카드 https://mediabrowser.chanpaca.net/*` → `301 https://paca.chanpaca.net/${1}`) 생성·활성 — 경로·쿼리 보존 확인, paca 는 200 유지. GSC 주소 변경(Change of Address)은 301 이후 구(舊) 속성 소유확인이 풀려 검증 실패(선택 항목, canonical+301 로 통합 진행). - [ ] **최대 병목 해소**: 공개 저장소(선택) → 현재 방침은 **사이트 중심 홍보**로 전환, 저장소는 글로벌 개발자 채널 확장 시에만 검토. - [ ] **Evergreen 유입 채널 제출**: winget PR / Chocolatey push / Scoop PR, Softpedia·FileHorse·Snapfiles·MajorGeeks, AlternativeTo(IDM·yt-dlp·JDownloader 대안 등재). - [ ] **런치 시즌**: Product Hunt + Show HN + Reddit + 뉴스레터(TLDR·selfh.st) + 유튜브 리뷰어 (게시문은 `docs/promo/`). - [x] **프로토콜 중심 롱테일 how-to (DASH·AES-128)**: `site/how-to-download-dash-mpd.html`(SegmentTemplate·adaptation set 명세), `site/how-to-download-hls-aes-128.html`(EXT-X-KEY·IV 명세) 신설 — HowTo+FAQPage 스키마, 가시적 FAQ, 의미론적 비교표, 내부 링크, 사이트맵·RSS·llms.txt 동기화. Gate218(RED→GREEN)로 고유 명세·색인 등록·고아 방지 검증. - [x] **측정 인프라 개시**: Naver/Bing/GSC 등록으로 색인·노출 리포트 경로 확보, IndexNow(13 URL) 전 엔진 200 OK. - [x] **제품 내 확산 루프(완료 화면 공유 카드)**: `Paca.Core.Social.ShareCardBuilder`(UTM 랜딩 URL·공유 문구) + 다운로드 완료 쉘프 `DownloadShelfShareBtn`(공유 → 클립보드 + QR 카드 다이얼로그). Gate219(RED→GREEN). - [~] **Evergreen 유입 채널**: winget/Chocolatey/Scoop 매니페스트에 v1.2.0 해시·ProductCode·iconUrl **값 확정 완료**(`build/distribution/`). 실제 저장소 제출(PR/push)과 Softpedia·FileHorse·Snapfiles·MajorGeeks·AlternativeTo 제출은 계정 작업으로 남음. ## 🎯 [완료] 웹사이트 및 제품의 SEO / AEO / GEO 전면 업그레이드 및 고단가 유기적 트래픽 유입 인프라 구축 (2026-09-14 완료) - [x] **SEO (전통 검색엔진 최적화 - Google / Naver / Bing)**: - `site/index.html` 내 풍부한 Schema.org JSON-LD 구조화 데이터 탑재: `SoftwareApplication` (버전, 다운로드 링크, 무료 가격 모델, 평점 4.9/5, 세부 기능 명세) 및 `FAQPage` (로그인 세션, IDM 대체, 무료 정책 Q&A). - 글로벌 고단가(CPM $10~$25) 해외 트래픽 유입을 위한 이중 Hreflang 메타 태그 (`ko`, `en`, `x-default`) 및 타깃 키워드 메타 태그 적용. - HLS m3u8 고검색량 키워드 전용 랜딩 페이지 `site/how-to-download-m3u8.html` 신설 및 `HowTo` + `FAQPage` 복합 Schema.org 배포. - [x] **AEO (인공지능 답변엔진 최적화 - ChatGPT Search / Perplexity / Copilot / Naver Cue:)**: - 사용자 질문에 직결되는 두괄식 즉답(Inverted Pyramid) Q&A 구조 배치. - 경쟁 상용 툴 대비 특장점 상세 비교 랜딩 페이지 `site/vs-idm-alternative.html` 신설: PACA vs IDM vs 4K Video Downloader vs 크롬 확장 프로그램 8대 핵심 항목(가격, 내장 브라우저, 세션 쿠키, m3u8 자동 감지, AES-128, 4K/8K, 모바일 스트리밍, 악성코드 안전성) 비교 매트릭스 표 구축. - [x] **GEO (생성형 AI 모델 인덱싱 및 인용 최적화 - Answer.AI / Anthropic 표준)**: - Answer.AI 표준 `/llms.txt` 요약 명세서 구축. - LLM 모델이 직접 크롤링하여 학습/인용할 수 있는 4,000자+ 상세 기술 명세서 `site/llms-full.txt` 신설 (아키텍처, 벤치마크 수치, 세부 가이드, FAQ, 보안 정책). - `site/robots.txt`에 주요 AI 크롤러 봇(`GPTBot`, `PerplexityBot`, `ClaudeBot`, `Google-Extended`, `Bingbot`, `Yeti`) 전면 허용 및 `llms.txt` 경로 공개. - [x] **사이트맵 및 탐색 내비게이션 확장 (`site/sitemap.xml`)**: - 메인, 다운로드, 가이드뿐 아니라 m3u8 가이드, IDM 비교, `llms.txt`, `llms-full.txt` 등 전체 리소스 색인 등록 및 최신 `lastmod` 부여. - [x] **TDD 게이트 무결성 및 전수 검증 (`SiteSeoAeoGeoGateTests.cs` Gate 211~213)**: - Gate 211 (Schema.org 구조화 데이터 및 HowTo/FAQPage 무결성), Gate 212 (AI 크롤러 봇 허용 및 llms.txt/llms-full.txt 규격), Gate 213 (AEO 비교 테이블, sitemap.xml, Hreflang) 전수 통과. - 솔루션 전체 테스트 **2,749 / 2,749 GREEN 전수 통과 (100% 통과, 0 실패, 0 스킵)**. ## 🎯 [완료] 가짜 모의 광고 전면 척결 및 실시간 구글 공식 광고 네트워크(GPT/AdSense) 인프라 & ads.txt/도메인 오리진 격리 수익화 정상화 (2026-09-14 완료) - [x] **가짜 모의 광고(쿠팡, 삼성 등 목업 카드) 전면 영구 박멸**: - `DesktopAdModels.cs`, `DesktopAdBannerControl.xaml.cs` 등 모든 프로덕션 코드 및 모델에서 하드코딩된 모의 광고(쿠팡, 갤럭시 S24, 삼성전자, 가짜 할인 카드 등)를 100% 제거. - 가짜 목업 UI 대신 실제 구글 광고 네트워크(Google Publisher Tag `gpt.js` 및 Google AdSense `adsbygoogle.js`) 연동. - [x] **공식 구글 퍼블리셔 인증 파일 배포 (`site/ads.txt`, `site/app-ads.txt`)**: - 사용자 고유 퍼블리셔 ID 기반 정합 레코드 배포: `google.com, pub-1039714767792854, DIRECT, f08c47fec0942fa0`. - 가상 호스트 디렉터리(`ad_html/ads.txt`, `ad_html/app-ads.txt`) 및 공식 웹 사이트 배포 디렉터리(`site/`)에 배치하여 크롤러 인증 및 수익화(단가 획득) 보장. - [x] **uBlock Origin 확장 프로그램 간섭 차단을 위한 독립 광고 WebView2 환경 구축**: - 사용자 프로필에 설치된 uBlock Origin 등 광고 차단 확장이 브라우징 탭에는 정상 동작하되, 데스크톱 광고 슬롯은 차단하지 않도록 독립 전용 프로필(`%AppData%\Paca\ad_profile`) 및 `--disable-extensions` 플래그로 분리 격리. - [x] **가상 HTTPS 오리진 매핑 (`https://ads.paca.cloud`)**: - `SetVirtualHostNameToFolderMapping`을 통해 로컬 `file:///` 프로토콜의 Referer 부재 및 AdSense 거부 문제를 해결하고, 실제 웹 보안 HTTPS 오리진(`https://ads.paca.cloud/`)으로 광고 서빙. - ``, ``, 정규화 canonical 태그 탑재. - [x] **TDD 게이트 무결성 및 실시간 렌더링 검증**: - Gate 209 (퍼블리셔 식별자 및 ads.txt/app-ads.txt 검증), Gate 210 (가짜 모의 광고 박멸 및 AdSense/GPT 스니펫 무결성 검증) 통과. - 전체 테스트 **2,746 / 2,746 GREEN 전수 통과 (100% 통과, 0 실패, 0 스킵)**. - 실제 구글 광고 네트워크 응답(`AD_RENDERED`) 수신 및 AdChoices 아이콘이 포함된 듀얼 실시간 광고 렌더링 확인. ## 🎯 [완료] 데스크톱 인앱 스크린샷 디버깅 시스템 및 듀얼 광고 배너 CSS Grid 렌더링 정상화 (2026-09-13 완료) - [x] **앱 자체 윈도우 정밀 캡처 디버깅 파이프라인 (`AppDebugScreenshotService.cs`)**: - 외부 전체 화면/모니터 캡처가 아닌 PACA 앱 윈도우(`HWND` 및 `RenderTargetBitmap`)만을 단독으로 정확하게 캡처하여 `%AppData%\Paca\debug_screenshot.png`에 저장. - `%AppData%\Paca\screenshot_trigger.req` 파일 감지 기반 온디맨드 디버깅 캡처 지원. - [x] **하단 배너 (728x90) 및 다운로드 패널 배너 (300x250) CSS Grid 렌더링 정상화 (`DesktopAdBannerControl.xaml.cs`)**: - 하단 배너: Flexbox 축소로 인한 중앙 텍스트 증발 문제를 완전한 CSS Grid(`56px 1fr auto`)로 교체하여 쿠팡 로고, 배지, 본문 제목, 설명, CTA 버튼 완벽 복원. - 다운로드 패널 배너: 뷰포트 크기 미지정으로 카드가 화면 밖으로 밀려나 검은 직사각형(762B)으로만 찍히던 문제를 `` 및 3행 그리드로 해결하여 삼성전자 로고, 배지, 제목, 설명, CTA 버튼 100% 온전 렌더링. - 가상 호스트 HTTP 캐싱을 방지하고 즉각적 DOM 구성을 위해 `CoreWebView2.NavigateToString(pageHtml)` 적용. - [x] **TDD 게이트 무결성 및 전수 검증 (`DesktopAdSlotAndNtpSponsoredGateTests.cs` Gate 205~208)**: - Gate 208: 캡처된 실제 비트맵 픽셀 감사(하단 배너 텍스트 픽셀 검출 및 다운로드 배너 단색 빈 사각형 방지) 통과. - 솔루션 전체 테스트 **2,744 / 2,744 GREEN 전수 통과 (100% 통과, 0 실패, 0 스킵)**. - WMI 분리 런처 기반 데스크톱 실창 렌더링 검증 완료 (`MainWindowHandle = 2887134 != 0`). ## 🎯 [완료] 영상 썸네일 자동 추출/로컬 캐시(Referer 403 방어 & FFmpeg 프레임 추출) 및 스마트 제목 추론/난수 해시 정제 & 이름 바꾸기 시스템 (2026-09-13 완료) - [x] **스마트 제목 추론 및 난수 해시 감지 엔진 (`FileNameUtil.cs`)**: - 사용자 요구사항 완벽 반영: 웹 스니퍼 감지 시 난수 해시(`1a099dac52a596d88` 등)로 알아보기 어렵던 파일명을 게시물/웹 페이지 제목 기반으로 자동 정제하고 중복 영상에는 순번(`#1`, `#2`) 부여. - `IsObfuscatedHash`: 12자 이상 16진수 및 UUID, 타임스탬프 결합 해시 자동 판별. - `CleanWebTitle`: 사이트 접미사(` - 루리웹`, ` · GitHub` 등) 보일러플레이트 정제. - `DeriveSmartTitle`: 원본 파일명 해시 여부에 따라 최적의 스마트 제목 도출. - [x] **썸네일 로컬 캐싱 및 Referer 403 핫링크 차단 방어 & FFmpeg 추출 (`ThumbnailCacheService.cs`)**: - 사용자 요구사항 완벽 반영: 루리웹, 네이버 등 외부 핫링크 차단(403) CDN 이미지나 썸네일 없는 영상에 대해 자동 캐싱 및 프레임 캡처 제공. - 원본 페이지 `Referer` 헤더를 포함한 비동기 이미지 다운로더 및 SHA-256 로컬 영속 캐싱. - 인라인 `` Base64 Data URI 즉시 로컬 캐시 변환. - `%AppData%\Paca\tools\ffmpeg.exe`를 활용한 1초 지점 비디오 프레임 캡처 엔진 연동 (원격 스트림 및 다운로드 완료 로컬 파일 모두 지원). - [x] **DOM 스니퍼 스크립트 고도화 (`TabViewService.cs`)**: - `