youtube에서 아카이브된 생방송 코멘트를 역기로 기록

tl;dr


  • 아카이브 된 생방송 코멘트는 api를 통해 얻을 수 없습니다
  • 화면에 표시되므로 동영상 재생 중에 일정 시간마다 스크래핑하면 일단 저장할 수 있습니다.

    코드 (2019/04/13 현재 UI의 경우)


    setInterval(() => {
        chat_list = document.getElementsByTagName("yt-live-chat-text-message-renderer")
        for(var i = 0; i < chat_list.length; i++){
            node = chat_list[i].children[1]
            timestamp = node.children[0].textContent
            name = node.children[1].children[0].textContent
            content = node.children[2].textContent
            console.log(timestamp + "\t" + name + "\t" + content)
        }
    }, 60*1000);
    

    사용법


  • 코멘트 취득하고 싶은 생방송 아카이브의 페이지에 간다
  • 개발자 콘솔을 열고 javascript contexts를 chatframe으로 변경
  • 동영상 재생
  • 위의 코드를 콘솔에서 실행하고 잠시 기다리면 시간 · 쌀 주 · 코멘트가 1 분마다 콘솔에 흐르기 시작한다
  • 동영상이 끝날 때까지 대기
  • 마지막 코멘트가 콘솔에 출력되었는지 확인한 후 콘솔에서 마우스 오른쪽 버튼을 클릭 -> save as..로 콘솔 내용을 저장합니다
  • 동일한 주석을 중복 할 수 있으므로 중복을 제거합니다.
  • 끝. 나머지는 적절하게 사용하십시오
  • 좋은 웹페이지 즐겨찾기