MinusPod: 사용자 참여형 패턴 공유 기능을 통한 셀프 호스팅 팟캐스트 광고 제거 기능 업데이트
요약
MinusPod에 커뮤니티 패턴 공유 기능이 추가되어 사용자가 직접 광고 스크립트를 학습시키는 과정을 개선했습니다. 이 기능을 통해 사용자들은 GitHub 저장소에 존재하는 공유된 패턴 세트를 가져와, 처음부터 모든 스폰서 광고를 다시 학습할 필요 없이 더 많은 스폰서 광고 문구를 인식할 수 있게 되었습니다. 이 기능은 선택 사항이며 개인정보 보호가 철저하게 유지되도록 설계되었습니다.
핵심 포인트
- 커뮤니티 패턴 공유 기능을 통해 사용자가 개별적으로 학습해야 했던 스폰서 광고 패턴을 중앙 집중식으로 관리하고 적용할 수 있습니다.
- 패턴은 태그(tag) 기반 매칭 시스템을 사용하여 관련성 높은 팟캐스트에만 실행되며, 속도를 유지합니다.
- 개인정보 보호를 위해 기여 과정에서 사용자의 식별 정보 및 청취 기록 등 모든 민감한 데이터는 제거됩니다.
- 기능 활성화는 선택 사항이며(opt-in), 동기화 일정은 cron 표현식으로 설정할 수 있습니다.
- 패턴 제출 및 병합 과정은 사람이 직접 검토하는 PR(Pull Request) 방식을 따르며, 자동 병합은 이루어지지 않습니다.
또한 사용자의 수정 사항으로부터 학습합니다. 잘못된 컷을 한 번 수정하면, MinusPod는 해당 스폰서의 광고 스크립트를 저장합니다. 더 많이 수정할수록 성능은 더 좋아집니다. 하지만 새로 설치할 때마다 처음부터 다시 시작해야 합니다. Squarespace, BetterHelp, NordVPN 및 다른 사람들이 이미 자신의 인스턴스에 가르친 수백 개의 다른 스폰서들에 대해 사용자의 인스턴스에 다시 가르쳐야 합니다.
따라서 이번 새로운 릴리스(release)에는 커뮤니티 패턴(community patterns)이 추가되었습니다. 작동 방식과 데이터 처리 방식은 다음과 같습니다.
개념 (What it is)
공유된 패턴 세트가 프로젝트의 GitHub 저장소(repo)에 존재합니다. 사용자의 인스턴스는 설정한 일정에 따라 이를 가져올 수 있습니다. 흔한 스폰서 광고 문구는 사용자가 먼저 수정하지 않아도 인식됩니다. 소량의 스타터 세트와 함께 제공되며, 사람들이 기여함에 따라 성장합니다.
이 기능은 선택 사항(opt-in)이며 기본값은 비활성화(off) 상태입니다. 사용자가 직접 켜지 않는 한 아무것도 동기화되지 않습니다. 설정을 그대로 두면 MinusPod는 이전과 정확히 동일하게 동작합니다.
매칭 (Matching)
패턴에는 태그(tag)가 지정되어 있어 관련 있는 팟캐스트에만 실행됩니다. VPN 광고가 프라이버시를 한 번 언급한 범죄 실화(true-crime) 쇼에서 실행되지는 않습니다. 스폰서에는 vpn 또는 finance와 같은 태그가 붙고, 팟캐스트는 RSS 카테고리에서 태그를 가져옵니다(사용자가 직접 추가할 수도 있습니다). 패턴은 태그가 일치할 때만 실행됩니다. Squarespace나 Audible처럼 어디에서나 광고하는 스폰서는 항상 적용되도록 플래그(flag)가 지정됩니다. 태그 필터는 무거운 텍스트 매칭(text matching)이 수행되기 전에 실행되므로, 세트가 커지더라도 빠른 속도를 유지합니다.
개인정보 보호 (Privacy)
기여(Contributing)는 패턴별로 이루어지는 별도의 수동 작업입니다. 절대 자동으로 발생하지 않습니다. 사용자가 제출하면, 앱은 사용자를 식별하거나 사용자가 무엇을 듣는지 나타내는 모든 정보(어떤 팟캐스트에서 왔는지, 네트워크, 타임스탬프, 매칭 횟수 등)를 제거합니다. 또한 광고 텍스트 자체에서도 개인 식별 정보(PII)를 제거하여 개인 이메일 주소와 유료 전화번호가 아닌 전화번호를 삭제하며, 광고 문구 내의 비즈니스 연락처 정보는 유지합니다. 품질 검사를 거친 후 JSON 파일을 다운로드합니다.
그다음부터는 평소와 같은 방식으로 PR (Pull Request)을 생성하면 됩니다. 저장소(repo)를 포크(fork)하고, 파일을 patterns/community/ 디렉토리에 넣은 뒤, 커밋(commit)하고 푸시(push)하여 PR을 오픈합니다. 앱에서 복사하여 붙여넣을 수 있는 정확한 git 명령어를 제공하므로 추측할 필요가 없습니다. 모든 제출물은 수락되기 전에 사람이 직접 검토합니다. 자동 병합(auto-merge)은 이루어지지 않습니다.
제어 기능 (Controls)
동기화 일정은 기본값이 주 단위인 cron 표현식(cron expression)이며, 수동 동기화 버튼도 제공됩니다. 커뮤니티 패턴 중 원하는 것을 고정(pin)하여 동기화 시 변경되지 않도록 할 수 있습니다. 원할 때 언제든 전체 기능을 끌 수 있으며, 기존 패턴은 직접 삭제하기 전까지 유지됩니다.
주의 사항 (Caveats)
현재 시작 세트는 규모가 작습니다. 사람들이 기여함에 따라 점차 개선될 것이며, 이는 초기 사용자(early adopters)들이 더 많은 비중을 감당해야 함을 의미합니다. 이런 종류의 프로젝트는 보통 그렇게 시작됩니다.
태그 매칭(Tag matching)은 휴리스틱(heuristic) 방식입니다. 때로는 매칭될 수 있는 패턴을 건너뛰거나, 적용되지 않는 패턴을 실행할 수도 있습니다. 패턴을 건너뛰는 경우, 탐지는 일반적인 LLM (Large Language Model) 단계로 넘어가므로 부드럽게 실패(fail soft)하지만, 이것이 마법처럼 완벽한 것은 아닙니다.
이 기능이 MinusPod의 오디오 처리 속도를 더 빠르게 만들어주는 것은 아닙니다. Whisper 전사(transcription) 단계는 변경되지 않았습니다. 여전히 사용자가 직접 LLM을 가져와 사용해야 하는 방식(bring-your-own-LLM)이며, 동일한 하드웨어가 필요합니다. 패턴은 속도가 아닌 탐지 정확도를 향상시킵니다.
이것은 새로운 기능이며, 기여 프로세스가 아직 완전히 다듬어지지 않았습니다. 직접 사용해 보시고 과정이 매끄럽지 않거나, 이를 처리하는 더 나은 방법을 발견하신다면 의견을 듣고 싶습니다.
상세 정보:
- 메인 저장소: https://github.com/ttlequals0/MinusPod
- 제출 시 삭제되는 항목 및 기여 방법: https://github.com/ttlequals0/MinusPod/blob/main/patterns/CONTRIBUTING.md
- 패턴 세트 및 동기화 작동 방식: https://github.com/ttlequals0/MinusPod/blob/main/patterns/README.md
AI 자동 생성 콘텐츠
본 콘텐츠는 r/SelfHosted (AI filter)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기