프로젝트 소개
Already Watched는 YouTube 피드의 반복을 줄이기 위한 로컬 우선 Chrome 확장 프로그램입니다. 홈, 사이드바/추천, 검색, 구독, 관련 그리드 및 지원되는 Shorts 레이아웃 전반에서 비디오 카드를 감지합니다. 재생은 실제 고유 세그먼트를 통해 추적되며, 탐색(seek)이나 동일 세그먼트의 재시청은 진행률을 높이지 않습니다. 관찰된 세그먼트가 설정 가능한 임계값에 도달하면 해당 동영상은 시청 완료로 표시됩니다. 기본 표시 모드는 70% 시청 시 '배지 + 흐리게(Badge + Dim)' 처리하는 것이며, 시청 완료된 카드도 여전히 클릭 가능하며 호버 또는 키보드 포커스 시 복원됩니다. 옵션에는 시청 완료된 카드를 완전히 숨기기, 희소한 피드의 선택적 채우기, Playables 및 주제 제안 섹션 숨기기, 홈의 Shorts 선반/카드 숨기기, 재생목록 및 Mix 컬렉션 카드 숨기기가 포함됩니다. Playables/주제 및 재생목록/Mix 필터는 취소 가능하며, 표시 모드와 함께 작동하고 범위가 지정되어 있어 재생목록 내의 개별 동영상과 일반 동영상 URL은 계속 사용할 수 있습니다.
수동 제어 기능으로는 시청 완료 또는 미시청으로 표시하는 썸네일 버튼, 동영상 링크 또는 현재 시청 페이지에 대한 Chrome 컨텍스트 메뉴 명령, YouTube 기본 3점 동영상 메뉴 내의 작업이 포함됩니다. 스캔 명령은 스크롤, 계정 기록 가져오기 또는 YouTube API 사용 없이 현재 활성 탭에 렌더링된 카드에서 적격한 진행 표시줄을 가져옵니다. 통계는 저장된 시청 기록, 총 표시 횟수, 오늘 필터링된 횟수, 전체 기간 필터링된 횟수를 구분하며, 중복 카드, 재렌더링, SPA 탐색 및 반복적인 옵저버 이벤트는 중복 제거됩니다. 기록 삭제 시 동영상 기록, 부분 재생, 재정의 및 통계는 제거되지만 설정은 유지됩니다.
이 확장 프로그램은 storage, contextMenus 및 youtube.com에 대한 호스트 액세스 권한이 지정된 Manifest V3로 구축되었습니다. 설정, 동영상별 기록, 통계 및 기록 수정 데이터에는 chrome.storage.local을 사용하며, 기록 삭제 시에는 일시적으로 chrome.storage.session을 사용합니다. README에 따르면 분석 도구, 백엔드, YouTube API, Google 계정 액세스, 브라우징 기록 또는 쿠키 권한, Chrome 동기화가 없습니다. 콘텐츠 스크립트는 Chrome의 격리된 월드(isolated world)에서 실행되며, React는 팝업/옵션 UI에만 번들로 포함됩니다. 모든 스크립트, 스타일 및 아이콘은 CDN이나 런타임 코드 다운로드 없이 로컬로 제공됩니다.
개발에는 Node.js 20.19+(Node 22 LTS 권장), npm 및 Chrome 114+가 필요합니다. npm ci 및 npm run check를 통해 로드 가능한 확장 프로그램을 dist/에 빌드합니다. README에는 유닛, DOM, 스토리지 동시성, 플레이어 회귀, 타입 체크, 빌드, 개발 감시 및 로컬 미리보기 서버에 대한 테스트가 문서화되어 있습니다. 알려진 제한 사항으로는 YouTube 레이아웃 실험, v1 범위 밖의 모바일 및 임베디드 플레이어, 보수적인 광고/라이브 휴리스틱, 관찰되지 않은 재생 간격 가능성, YouTube가 지원되는 연속성을 제공하지 않을 때의 최선 노력 기반 채우기 등이 있습니다. 이 프로젝트는 MIT 라이선스입니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.