본문 바로가기

개발자 이야기

왜 유튜브는 BTS와 롤린의 한국어 댓글을 숨기는걸까? 개발자가 해결하는 방법

728x90

유튜브가 무슨생각인지 분명 한국인들이 한국어로 올린 영상인데 댓글은 죄다 영어로 뜨게 해놨다.

 

한국에서 역주행하고 한국에서만 활동한 브레이브걸스 롤린의 처참한 댓글 상황...

 

 

나는 유튜브를 댓글보기 위해 본다고 해도 좋을 정도로 댓글을 많이보는데,

 

재밌게 본 영상에 댓글이 죄다 영어라면 신경질부터 난다.

이를 해결할 방법은 없을까?

방법은 간단하다.

 

댓글을 볼때 영어로 된 댓글은 죄다 삭제하는 것이다.

(유튜브가 polymer기반으로 되어있어 lit-Element를 사용하는 내가 어느정도 구조를 이해하기 쉬웠다.)

 

 

.

//댓글을 검사해서 한글이 포함되어있다면 남기고, 한글이 포함되어 있지 않다면 삭제하는 함수
function filterEng(){
    //한글 검사하는 정규식
    let korean = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/;
    //돌고있는지 확인
    console.log("Run");

    //현재 보이는 댓글을 순회하면서 한글만 남기고 다 삭제한다.
    Object.values(document.querySelectorAll("#comment")).map( el => {
        //댓글 추출
        let string
        if(el.querySelector("#content-text")){
            string = el.querySelector("#content-text").innerText
        let result = korean.test(string)
        if(!korean.test(string))
                     el.parentComponent.remove()
            return [result,(string)]
        }
        return [false,"comment"]
    });    
}

//편의를 위한 CSS 변경
//영상 상단 고정
document.querySelector("#player.ytd-watch-flexy").style.position = "fixed"
//큰 화면일때 맞춤
// document.querySelector("#player.ytd-watch-flexy").style.width = "70%" 
//작은 화면일때 맞춤
document.querySelector("#player.ytd-watch-flexy").style.width = "100%" 
document.querySelector("#player.ytd-watch-flexy").style.left = "0"
document.querySelector("#player.ytd-watch-flexy").style.top = "0";

//다른 요소가 안가리도록 함.
document.querySelector("#player.ytd-watch-flexy").style["z-index"] = 9999;

//1초마다 필터링 반복함.
setInterval(filterEng, 1000);

위 소스를 복사해서 유튜브에서 F12-> 붙여넣기 후 엔터, 다시 F12하면 된다.

 

라익 디스

 

이제 영어로 된 댓글은 알아서 삭제해주고 한국어 댓글만 남긴다.

추가로, 영상을 보면서 댓글을 볼 수 있게 해놓았다.

(지금까지는 영상을 보면서 댓글을 읽는건 휴대폰으로만 가능하여 매우 불편했다)

 

 

 

화면 크기를 줄이면 영상의 크기가 줄어들면서 보다 댓글을 쾌적하게 볼 수 있다.

 

 

 

댓글 무려 1300만개에 육박하는 BTS의 다이너마이트 영상에서도 한국어 댓글을 찾을 수 있었다.

남자지만 BTS의 아이돌이나 다이너마이트 영상은 종류별로 보는데, 댓글을 보면 죄다 영어라 한국인 특유의 보기만 해도 기분이 좋아지는 '주접댓글'을 볼 수 없어 슬펐는데

 

앞으로는 잘 활용해야겠다..

 

근데 기껏 만들어놨더니 이미 수많은 익스텐션과 개발자들의 기록이 남아있더라.

 

몇개 써봤는데 내가 만든게 제일 나은것 같아 그냥 올린다.

728x90