bash에서 YouTube 라이브 댓글 (채팅 재생)을 빨리 얻으십시오.
사전 준비
/live_chat_replay?continuation=XXX
XXX 부분의 값 얻기 스크립트
#/bin/bash
NEXT_URL=${1}
readonly API='https://www.youtube.com/live_chat_replay?continuation='
readonly UA='User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
readonly TS=$(date +%s)
function get_comment_json(){
curl -s -H "${UA}" ${1} | \
grep 'responseContext'| \
sed -e 's/window\["ytInitialData"\]\ =\ //' -e 's/;$//' \
> /tmp/out.json
}
function output_comment(){
cat /tmp/out.json |jq -r '.continuationContents[].actions[].replayChatItemAction.actions[].addChatItemAction.item.liveChatTextMessageRenderer| [.timestampText.simpleText , .authorName.simpleText , .message.runs[0].text , .message.runs[1].text]|@tsv' 2>/dev/null| \
awk -F '\t' '{print $1 "\t" $2 "\t" $3 $4 }' \
>> ./comment_${TS}.tsv
}
while [ ${NEXT_URL} != 'null' ]
do
get_comment_json ${API}${NEXT_URL}
output_comment
NEXT_URL=$(cat /tmp/out.json |jq -r .continuationContents.liveChatContinuation.continuations[0].liveChatReplayContinuationData.continuation 2>/dev/null)
sleep 1
done
rm /tmp/out.json
exit 0
실행
#/bin/bash
NEXT_URL=${1}
readonly API='https://www.youtube.com/live_chat_replay?continuation='
readonly UA='User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
readonly TS=$(date +%s)
function get_comment_json(){
curl -s -H "${UA}" ${1} | \
grep 'responseContext'| \
sed -e 's/window\["ytInitialData"\]\ =\ //' -e 's/;$//' \
> /tmp/out.json
}
function output_comment(){
cat /tmp/out.json |jq -r '.continuationContents[].actions[].replayChatItemAction.actions[].addChatItemAction.item.liveChatTextMessageRenderer| [.timestampText.simpleText , .authorName.simpleText , .message.runs[0].text , .message.runs[1].text]|@tsv' 2>/dev/null| \
awk -F '\t' '{print $1 "\t" $2 "\t" $3 $4 }' \
>> ./comment_${TS}.tsv
}
while [ ${NEXT_URL} != 'null' ]
do
get_comment_json ${API}${NEXT_URL}
output_comment
NEXT_URL=$(cat /tmp/out.json |jq -r .continuationContents.liveChatContinuation.continuations[0].liveChatReplayContinuationData.continuation 2>/dev/null)
sleep 1
done
rm /tmp/out.json
exit 0
% bash ./run.sh XXX
실행 결과
% head -n 20 ./comment_*.tsv
-0:04 M M 来ました!笑
-0:01 寒色系ブルー おつ
-0:01 しゅーへー あ
0:00 アルカディア おお!
0:06 私はダメです !
0:07 Rena こんばんは
0:07 REX えいやっさ!
0:10 。 a 楽しみ〜
0:10 y t きた!
0:10 ずんだ はよ
0:11 ルビリアルビィ こんばんは!
0:12 天下の大泥棒石川五右衛門 おお
0:12 しゅんちゃん! !
0:12 。くろ やべぇ!
0:13 きなこきなこ いぇい
0:13 黒崎嶺二 こんにちは
0:15 渡邉りさちゃん あああああ
0:16 ふにゃっしー こんばんはわ
0:17 しゅーへー にコメ
Reference
이 문제에 관하여(bash에서 YouTube 라이브 댓글 (채팅 재생)을 빨리 얻으십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/zero3/items/609bf0a3389575b92f2f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
% head -n 20 ./comment_*.tsv
-0:04 M M 来ました!笑
-0:01 寒色系ブルー おつ
-0:01 しゅーへー あ
0:00 アルカディア おお!
0:06 私はダメです !
0:07 Rena こんばんは
0:07 REX えいやっさ!
0:10 。 a 楽しみ〜
0:10 y t きた!
0:10 ずんだ はよ
0:11 ルビリアルビィ こんばんは!
0:12 天下の大泥棒石川五右衛門 おお
0:12 しゅんちゃん! !
0:12 。くろ やべぇ!
0:13 きなこきなこ いぇい
0:13 黒崎嶺二 こんにちは
0:15 渡邉りさちゃん あああああ
0:16 ふにゃっしー こんばんはわ
0:17 しゅーへー にコメ
Reference
이 문제에 관하여(bash에서 YouTube 라이브 댓글 (채팅 재생)을 빨리 얻으십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zero3/items/609bf0a3389575b92f2f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)