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

in kr-dev •  7 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도 쓸지 말지 모르겠네요

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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

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

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

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!