본문 바로가기

개발

[크롬 익스텐션] 유튜브 스팸댓글 차단기 v1.2

안녕하세요. 오랫만에 뵙습니다.

 

휴일에 유튜브 보는게 인생의 유일한 낙인데, 재밌는 영상엔 댓글 구경도 재밌는 요소중 하나죠.

 

그런데 보다보면 꼭 이 바퀴벌레같은 댓글들이 있습니다. 

 

 

바로 이 쓰레기같은 댓글들이죠. 내용은 기존에 있던 유튜브 댓글 고대로 복사하고, 가계정으로 추천수 조작돌리고, 기존 댓글은 신고테러해서 삭제시켜가지고 상단에 노출되는 이 사회를 좀먹는 쓰레기들.

 

볼때마다 신고하긴 하는데, 이게 뭐 차단이 실제로 되는지 알 방법이 없고 매번 신고하기도 너무 귀찮고.. 유튜브는 왜 이런거 제재 안하는지 모르겠습니다만 오늘부터는 이 꼴보기 싫은 쓰레기 댓글과는 안녕입니다. 크롬 확장 프로그램을 만들어서 모두 차단해버리겠습니다.

 

버전이 왜 1.1이냐면 1.0이 너무 오탐이 심해서 혼자 쓰다가 좀 개선했습니다.


1. 차단 ID 수집

사실 돌아다니면서 본 형태로는 [19, i9, l9] 같은 형태로 뭐가됐던 성인채널임을 암시하는 구조입니다. 오탐을 방지하기 위해 유튜브 영상 몇개를 골라 댓글을 전체적으로 크롤링하려 했지만 오탐이 좀 되면 어떻죠? 어쨌던 저 댓글만 안보이면 된다는 생각으로 크롤링은 포기하고 바로 개발자 모드에서 유튜브 댓글 형태부터 파악합니다.

//댓글
<ytd-comment-thread-renderer>
	<ytd-comment-view-model id="comment">
    	<body>
        	<a id="author-text">
            	<span> @ID </span>
        	</a>
        </body>
    <ytd-cmment-view-model>
    //대댓글
    <div id="replies"> </div>
</ytd-comment-thread-renderer>

 

대충 이런 구조입니다. <span> 태그 안의 ID값을 가져와서, 차단 키워드와 매칭시킨 다음에, 컨테이너를 아예 안보이게 하면 되지 않을까요? 콘솔로 가서 테스트해봅니다.

const comment = document.querySelector("ytd-comment-thread-renderer");
if (comment) {
  comment.style.display = "none";
  console.log("숨김처리");
}

 

정상적으로 동작하는군요. 기능 개발에 문제가 없는걸 확인했으니, 본격적으로 개발을 시작합니다.

 

 

2. 크롬 익스텐션 구조 파악

https://developer.chrome.com/docs/extensions?hl=ko

 

Chrome 확장 프로그램  |  Chrome Extensions  |  Chrome for Developers

Chrome 확장 프로그램 개발 방법을 알아보세요.

developer.chrome.com

 

크롬 확장프로그램의 구조를 파악합니다. 설명이 워낙 잘 되어있어서 크게 이해하는데 문제는 없었습니다. 또 유튜브 코딩애플 님의 영상에도 간략하게 설명되어 있는 영상이 있으니 참고합니다.

 

https://www.youtube.com/watch?v=pIQmxUk_FdI

 

3. 개발 및 테스트

키워드 기반으로 차단시키는 기능 자체가 간단해서 테스트가 오래 걸렸을 뿐 어려운 부분은 없었습니다만 디자인은 자신이 없어서 지피티한테 시켰습니다.

 

요즘 성능이 엄청 뛰어나서 알아서 잘 해주네요.. 

 

빠질 수 없는 다크모드.. 없으면 섭섭할까봐 넣었습니다..

 

 

4. 설치

 

chrome://extensions 에서 직접 설치하셔야합니다. 스토어 등록 과정이 귀찮은 것도 있고 아직 오탐이나 부족한 부분이 많아서, 게시하기 부끄럽네요. 

YTC_BLOCKER_v1.2.zip
0.02MB

 

5. 마치며

 

고급 설정 메뉴에 보면 차단 닉네임 관리 수집이 기본적으로 켜져있습니다.

오탐률 같은것들 확인하려고 수집하게 만들어 놨는데, 차단 댓글 많아지면 내보내기 하셔서 파일 보내주시면 개선해보겠습니다.

 

원래는 자동 신고기능도 추가하려했으나, 오탐이 아직까진 워낙 많아서 안되겠더라구요.. 스팸댓글 바퀴벌레들 전부 사라질때까지 틈틈히 개선해나가보겠습니다.

'개발' 카테고리의 다른 글

[Script] Ping 스크립트  (0) 2024.02.19
Git / GitHub 사용법  (1) 2024.02.07
파이썬 개발환경 구축, PyCharm & PyQt 설치  (0) 2022.01.07