개발일지] Twitch 다시보기 채팅 파싱

in #kr-dev7 years ago (edited)

이틀 전부터 개발 중인 Twitch Chat Alnalyzer  (개발중)입니다.

데이터 시각화를 좀 해보고 싶은데,  아직까지 우리나라엔 좋은 데이터뭉치들이 없어서 직접 구해야합니다..ㅠ

그래서 어디서 얻을 수 있을까 하다가 인터넷 방송 채팅을 모아보면 재밌는 것을 만들 수 있지 않을까 싶어서 만들어보았습니다.

아직 미완이므로 자세한 상세 정보는 적지 않겠습니다!


이 글에서는 인터넷 개인 스트리밍 플랫폼인 트위치tv의 채팅을 파싱하는 방법을 알아보겠습니다.

트위치의 다시보기 실행시 크롬의 개발자 도구 Network 탭입니다. 여기서 주고받는 여러 정보를 알 수 있습니다만

저기 중간쯤 comments?content_offset_seconds=1 이 딱보니 느낌상 채팅일 것 같습니다.(사실 찾는데 좀 걸렸슴니다ㅎ)

Json 형식으로 N개의 Comment / _next / _ prev 노드들로 되어있네요 

처음에는  content_offset_seconds  파라미터를 이용하지만, 이 후부터는  cursor  파라미터로 다음 받아올 값들을 추적합니다.

_next 노드에는 이전  cursor  파라미터값이, _prev 노드에는 이후  cursor  값이 저장되어 있습니다.

이제 python의 request 모듈로 처리해봅시다.

추가적으로 트위치 api 서버에서 client_id 라는 파라미터가 있어야 정상 처리가 가능하더군요.

트위치 개발자 사이트에 가서 제 아이디의 client id를 생성해서 넣었습니다.

돌려보니 짠, 하고 나타났습니다.

크롬 개발자 도구에서 맞는지 확인해보니 유저의 채팅인 message:body:"므야" 도 잘 나왔습니다.

(id값이나  이름같은건 왠지 가려야할 거같아서 가렸습니다.. 보고 싶으면 누구나 볼 수 있는거긴 하지만..!)


받아온 마지막 comment의 content_offset_seconds 는 시작으로부터 몇 초에 이 메시지가 쓰였는지입니다.

이 시간이 되면 다음 comments?cursor=(_next 값) 을 이용해 다시 채팅을 받아옵니다.

이제 영상 끝까지의 _next 를 이용해 다음 cursor로 이동해서, 영상 전체의 채팅을 가져올 수 있겠군요.

개발 전 과정을 올릴까 말까 생각중이라 다음 2도 쓸지 말지 모르겠네요

이상 트위치 다시보기 채팅 파싱하기였습니다

Sort:  

우와 정말 대단하시네요. 제가 프로그래밍을 몰라서 이렇게 올려주셨는데도 이해 못하는게 죄송스럽네요.

감사합니다~ 근데 따로 배우신게 없으시면 아마 이해하기는 힘드실거에요 ㅠㅠ

Congratulations @steemonen1! You received a personal award!

1 Year on Steemit

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @steemonen1! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.26
TRX 0.20
JST 0.038
BTC 94927.30
ETH 3526.90
USDT 1.00
SBD 3.83