Youtube関連スクリプトまとめ
チャット・コメント一括取得
yt-dlpをインストールして以下のコマンド(URLはチャンネルでも動画でもよい)
コメント含む動画情報は~.info.jsonに、ライブチャットは~.live_chat.jsonに保存される
yt-dlp --skip-download --write-subs --write-comments -o "%(upload_date)s[%(id)s]" https://www.youtube.com/@XXX
チャット抽出
上でダウンロードしたファイルを適当なフォルダにまとめておく
必要そうな情報だけ取り出す
ソースコード(クリックで展開)
import os
import json
from datetime import datetime, timezone, timedelta
dir_in = "./youtube"
for i, filename in enumerate(os.listdir(dir_in)):
if filename.endswith('.live_chat.json'):
file_in = os.path.join(dir_in, filename)
chats = []
with open(file_in, 'r', encoding='utf-8') as f:
for j, line in enumerate(f):
print(f"[{i}][{j}] {file_in}", end="\r")
data = json.loads(line)
chatData = data.get("replayChatItemAction", {}).get("actions", {})[0].get("addChatItemAction", {}).get("item", {}).get("liveChatTextMessageRenderer", {})
if chatData:
chat = {
"authorName": chatData["authorName"]["simpleText"],
"text": next((run["text"] for run in chatData["message"]["runs"] if run.get("text") is not None), ""),
"timestampUsec": chatData["timestampUsec"],
"timestampText": chatData["timestampText"]["simpleText"],
}
chat["timestampJST"] = datetime.fromtimestamp(int(chat["timestampUsec"]) / 1000000, timezone(timedelta(hours=+9), 'JST')).strftime('%Y-%m-%d %H:%M:%S')
chats.append(chat)
dir_out = os.path.join(dir_in, "livechat")
os.makedirs(dir_out, exist_ok=True)
file_out = os.path.join(dir_out, filename)
print()
with open(file_out, 'w', encoding='utf-8') as f:
json.dump(chats, f, indent=2, ensure_ascii=False)
投稿者ごとにまとめる
邪魔そうなテンプレコメは除外する(excludes.txt)
ソースコード(クリックで展開)
import os
import json
dir_in = "./youtube/livechat"
histories = {}
excludes = ""
with open("./excludes.txt", 'r', encoding='utf-8') as f:
excludes = f.read()
for filename in os.listdir(dir_in):
if filename.endswith('.live_chat.json'):
file_path = os.path.join(dir_in, filename)
with open(file_path, 'r', encoding='utf-8') as f:
comments_data = json.load(f)
for comment in comments_data:
author_name = comment.get("authorName")
text = comment.get("text", "")
if text in excludes:
continue
if author_name not in histories:
histories[author_name] = []
video_id = filename.split('[')[1].split(']')[0]
comment_info = {
"text": text,
"timestampJST": comment.get("timestampJST", ""),
}
histories[author_name].append(comment_info)
dir_out = dir_in
os.makedirs(dir_out, exist_ok=True)
file_out = os.path.join(dir_out, "authors.json")
with open(file_out, 'w', encoding='utf-8') as f:
json.dump(histories, f, indent=2, ensure_ascii=False)
excludes.txt(クリックで展開)
ビリー/兄貴(レ)どうも、キヨシさん… /どうも、ゴMNTさん… こんばんは/こんばんわ アーッ! やっぱりな歪みねぇな あぁん?最近だらし.ねぇな?/だらし.ねぇな 仕方ないね ナイスでーすいざぁ… どういうことなの… もう終わりだぁ! 下手くそでちゅねー へい、どうぞワロス 恐ろしいぞ あぁんひどぅい なんだテメェ… あぁん?なんで? どうしようかなあぁん?挿入ったやろ? いやぁ、スイマセーン いやどっちやねん! いろいろ辛いか?お仕置きなんだよ! お前、人のモノを… だらし.ねぇし… 何の問題ですか?カズヤ(レ)イクぞオラァ! 行け!なんばパークス!全てはチャンス! ビビるわぁ あんたぁ…お~激しい ええぞ!ええぞ! 出ていけぇ! おっほっほっほ~元気だ( ^ω^)ふぐり!危ない危ない… え、帰るのもうワロスwww グルグル! グルグル!! 紅蓮返し!もうやってられんお疲れした 救いはないんですか!? 強くなりたいその他(レ)チン.ポ朝起ち カモン、レッツゴー あぁ…もう、あぁ最悪 どういう意味? どうでもいいわ超スピード!? わかんねぇ、名前なんていうの…? あかんもう勘弁してぇ…いい目してんねサボテンね ちゃあー!生きる意味を…失うFUC.K♂YOU FUC.K♂YOU! DEEP♂DARK♂FANTASY(D.D.F.) ~怖いでしょう… おTNTN!イケメーン?1 イケメーン?2 イケメーン?3 イケメーン?4 何の問題もないねすいましぇーん、ごめんなしゃーい まぁいっぱいおるし 我慢ね! いや無理ね そいつは意外TNKですねー! CNKですねー! スタイリッシュに決めろ C.C. もう解散なんです!許さない! 田所(淫夢)オッスお願いしま~す 114514 入って、どうぞ 悔い改めて おまたせ ファッ!? こ↑こ↓イキスギィ! イクゥイクイクイク… ンアーッ! ヌッ! カンノミホ… 見とけよ見とけよ~ 頭に来ますよ~ 頼むよ~しょうがないね ないです。 はっきりわかんだね これもうわかんねぇな お前どう?ぬわつか FOO↑気持ちいい~ まぁ、多少はね? お前のことが好きだったんだよ!じゃけん夜行きましょうね/じゃけん夜戦行きましょうね 溜まっちゃってさぁ ほらいくどーやりますねぇ! ダメみたいですね 出そうと思えば で、出ますよ… おっ大丈夫かん、おかのした。 ポポポポポポ… アーイキソ アーイキソ…MUR(淫夢) そうだよ(便乗)/そうだよ。/そうだよ(偽物) 当たり前だよなぁ? いいゾ~これあっ、そっかぁ おっ、そうだな。 ポッチャマ・・・ あっ、おい、待てぃ あっ(池沼) あっつー見ろよ見ろよ おし!じゃあぶち込んでやるぜ! おし!じゃあぶち込んでやるゾ~これKMR(淫夢)やめてくれよ… なんで見る必要なんかあるんですか ありがとうございます…じゃ、流しますね遠野(淫夢)マズいですよ! あ~^いいっすねぇ~^ ターミナルさん!? う、羽毛…やめてくださいよ本当に!KBTIT(淫夢) もう許せるぞオイ! もう許さねえからなぁ? ふざけんじゃねぇよ おちろ! おちたなありがとナス! バァン!(大破) ウッソだろお前!www 必要ねぇんだよ!従順になるまでやるからな/重巡になるまでやるからな かしこまり!悲しいなぁ おじさん(淫夢)YO! おつかれー じゃあオラオラ来いよオラァ! この無惨な姿よおなぁ!動くと当たらないだろ!? 突っ込めって言ってんだよ! 工事完了です… えぇ…(困惑)おじさんのこと本気で怒らせちゃったね 真ん中来いよ! 悪い子はおしおきだど~ひで(淫夢)ああああもうやだああああ あーいったい痛い痛い! ああ逃れられない!おじさんやめちくり~/おばさんやめちくり~ ダイナマイッ! ほんとぉ?やだ!やだ!ねぇ小生やだ! ライダー助けて! 出会いたい!/でら痛い!痛いんだよぉ! 痛い痛い痛いやだああああ ねぇ分かった分かった分かったよもぉねぇ分かった分かった分かったよもうカーリー(淫夢)14万!? あっ。 あのさぁ・・・ ええやん お前クビや あ ほ く さお前そんなことでワシが許すと思っとんのか ここ無いやん/ここなんや?どうしてくれんねんお前 なにこれ? ボッタクリやろこれ! ままええわ うせやろ?親方に電話させてもらうね 冗談はよしてくれ つっかえ!中年(淫夢) こわれる 壊れちゃ~^う いやーキツいっす お兄さん許して あ、そうですね。ammo F.C.O.H. 西田敏行 あーゆるして亭ゆるして 太すぎるッピ! うわーすごいよークイズ入らないみたい ちわ! てゐー! どっちだよ 入っちゃっ・・・・・たぁ! 終わっ…たぁ! 恥ずかしくないのかよ? アイアンマン… 乙ゥ^~違うだろ? Here We Go あぁ^~ようしみる アイーン おっp…おっぱげた/おっぱげたちゃんちゃちゃちゃんちゃん! イクイクイクイクイクイクイクイクよぉイクゥやったぜ。 やったぜ! ドバー クソが。 申し訳ないが ~はNG/NG。 やめようね!あ~^たまらねぇぜ/たまらねぇぜ あひ! 狂いそう…!/狂いそう! わかんないね…その他ホモおっ開いてんじゃーん! K!B!S! もう始まってる あくしろよ どう、出そう? なんだこのオッサン!? あーあもう滅茶苦茶だよ やはりヤバイ エンジン全開!まだ時間かかりそうですかねぇ へなちょこ 横向くんだよ90° どうにかしろうんちして♡ 嫌です… なんで?(殺意) それ一 アツゥイ! すいませへぇぇん次行こうぜ これって…勲章ですよ ん?今なんでもするって言ったよね?警察だ! 馬.鹿野郎お前俺は勝つぞお前/バカ野郎お前俺は勝つぞお前 ドロヘドロ!流行らせコラ!1 流行らせコラ!2 流行らせコラ!3 何だこいつら!?三人に勝てるわけないだろ! やめろォ(建前)ナイスゥ(本音) 喜んでじゃねぇよこっからが本番なんだよ なんか文句があるなら言ってみろ おいゴルァ! バカじゃねぇのおいお前らクルルァついてこい ナンボなん?/なんぼなん? 右センター13番赤沼源太さぁ行こうぜ 野田内閣 ドバーッ!っと出してきた/ドバーッ! ふざけんな! しびれる! その他例のアレオッハー! イクゾオォォォ! フラーッシュ! ~には気を付けよう! ダメです。こうだぞ!(甲だぞ!) 終わり!閉廷! ウンチーコングって知ってる? 結果発表!では諸君、サラバダー 忘れてたぁ! イクゾー コレガワカラナイ なんでや! 異議あり!ウィイイイイイイイイイイイッス! ウィイイイイイイイイイイイッス!! おい!なんでYO! おい!それってYO! (対馬編集)どうか行かないで マァァァァ… 落としたぁぁ ゲームのカード落としちゃった/落としちゃったはい、ゲームのカードを落としてしまったのですが おとなしくしててくれる?やめなされ!わしとお前の仲ZOY 中に入れるZOY 中々ZOY (UC) (NT-D)水素水はクソじゃ。最強雄筋肉TNPバトル オラァ! たまんねぇぞ! やったぜぇ!熱盛!(熱盛!/熱盛!2/熱盛!3/熱盛!4/熱盛!5) 笑っちゃうんですよね何か不満がおありですか? デトロイト市警だ! 糸冬ケツデカピングー完結記念SEおま.んこぉ^~ ~^~ だめ!だめ! えぇ? きしょい… このオッサンは… この野郎醤油瓶…!ちょっとズレてるかな ちょっと横暴ですね テンション低っ…! なんか…だめだな… 山崎邦正そこそこですね。ああいけません! あーやばい! おじさんキモいよ!はいお願いします! IKKOブルっちゃうよ… マジで亡くなったらどうしよう こんなん生まれて初めてだホントおっ.ぱいド素人 (男泣き) ちょ助けて… ご褒美はないんだぞ?イッパイイッパイホシイイイイイイイイ!!!! イクイクイクイクイクイクイクイクヨォイクゥ! ウァァ!!オレモイッチャウゥゥゥ!I.I.O. K.C.K. K.C.K.C. S.K.K.M. NG… ああ恥ずかしいやだこんな恥ずかしい そんなぁ~バラしたいなって ほんまギルティー やめてください!玉も竿もでけぇなお前 動物裁判だ…! 逆にいいかもしれない 両方、両方ありますそれがお前の望みなら 入っちゃったじゃねぇかよ 鞭が入るぞ鞭がやられてしまいました まさかこんな感じると思わなかったんでね 次回もお願いします総統閣下ダーッ! ちくしょーめ! 超許さん! おっ.ぱいプルンプルン!待ってってば! アイヤイヤヤーヤーヤーヤーヤー! 足らんかった~ダサいし!艦これ不知火です。/しらぬい.です。まぁ、そうなるな。シャドバいざ尋常に… 天地を焦がす うんちを焦がす悪行はそこまでじゃ! 究極の食材よ来たれ! やったぞ。東山源次結婚したのか… 俺以外の奴と… お前と結婚するのは… 俺だと思ってた…今夜は… 帰したくない…効果音デデドン! ガラガラガラ ガチャ カンッ! (ホ/モ/ビ/ー/ム) 33-4 PONG! オーモーイーガー(任務達成)/(デイリー達成) デデーン! ひろがるプラズマ/ひ ろ が る プ ラ ズ マ【GOD】 【GARO】 (絶唱) 落ちろよぉぉぉぉ! 浄化をぉぉぉぉ! バジリスクタイムブッピガン ドカベン Gene's_Rock-a-bye テレレレレレレレレー↑↑↑↑ アナ.ル地獄賞 チャカポコ英例たちこなああああああゆきいいいいいい 生意気なヤローだぜ だまりゃ! やらないかS E X ! やめないか!ボクは…正常だよ シャバドゥビタッチヘンシン ファイナルベント ソイヤ!えぇ!? いいぞぉ! シュワット! 何なりとお使い下さい。キモティー! 止まるんじゃねぇぞ…ヘアァ!? と思っていたのか? 何なんだぁ今のはぁ? パーン! えーどうしてー~はもう滅ぼせ! 槍vs砲台 ホ!いつの間に! すり替えておいたのさ! 運動会プロテインパワー!天皇陛下万歳 真っ赤な誓い もちろんさぁ! ついやっちゃうんだ フタエノキワミ、アッー! 性欲を持て余す。超!エキサイティン!! 大丈夫だ、問題ない 神は言っている…ここで死ぬ定めではないと…一番いいのを頼む どうかしてるぜ! トゥールールットゥットゥールー な~んちゃって まな板にしようぜ!やったぞレスリングシリーズビリー・ヘリントンアーッ! あぁん?なんで? あぁん?最近だらしねぇな/だらしねぇなあぁん?挿入ったやろ?/あぁん?入ったやろ?/入ったやろ?あぁん、ひどぅい/あぁんひどぅい いざぁ… いやどっちやねん!いろいろ辛いか? おTNTN! お仕置きなんだよ お前、人のモノを…/お前人のモノを こんばんは/こんばんわ だらしねぇしどういうことなの… どうしようかな どうも、キヨシさん…/どうも、ゴMNTさん… ナイスでーす なんだテメェ…/なんだてめぇ… 何の問題ですか?/なんの問題ですか?へい、どうぞ もう終わりだぁ! やっぱりな ワロス 恐ろしいぞ 仕方ないね歪みねぇな木吉カズヤあんたぁ… イクぞオラァ! え、帰るのもうワロス ええぞ!ええぞ!お~激しい/おー激しい おっほっほっほ~元気だ グルグル! グルグル!!ビビるわぁ! ふぐり! もうやってられんお疲れした 危ない危ない…救いはないんですか!?/救いは無いんですか !? 強くなりたい 紅蓮返し行け!なんばパークス! 出ていけぇ!/出て行けぇ! 全てはチャンス!VAN様D.D.F. DEEP♂DARK♂FANTASY F♂Y F♂Y! 下手くそでちゅねービオランテTNP朝起ち あぁ…もう、あぁ最悪 あかんもう勘弁してぇいい目してんねサボテンね カモン、レッツゴー ちゃあー! どういう意味?どうでもいいわ 生きる意味を…失う 超スピード!?城ノ内イケメーン? イケメーン?1イケメーン?2イケメーン?3イケメーン?4すいましぇーん、ごめんなしゃーい 何の問題もないね/なんの問題もないね わかんねぇ、名前なんていうの 許さない! 怖いでしょう…小兄貴CNKですねー!/TNKですねー! いや無理ね そいつぁ意外/そいつは意外まぁいっぱいおるし 我慢ね!その他C.C. PONG!スタイリッシュに決めろ もう解散なんです!真夏の夜の淫夢系野獣先輩(田所浩治こと鈴木ことetc)(≧Д≦) (首) 【YAJU】 114514 foo↑気持ちいい~/foo↑アーイキソ/アーイキソ アーイキソ…/アーイキソ…やりますねぇ!/ありますねぇ!イキスギィ! イクゥイクイクイク ンアーッ! オォン!アォン!オッスお願いしま~す/オッスお願いしまーすおっ大丈夫か/おっ、大丈夫か おまたせ お前どう?お前の事が好きだったんだよ!/お前のことが好きだったんだよ! カンノミホ…/やんほぬ こ↑こ↓ これもうわかんねぇな じゃけん夜行きましょうねしょうがないね ダメみたいですね で、出ますよ… ないです。 ヌッ!ぬわつか はっきりわかんだね ファッ!? ほらいくどー まぁ、多少はねん、おかのした。 ンアーッ! 悔い改めて 見とけよ見とけよ~出そうと思えば 頭に来ますよ~/頭にきますよ~ 入って、どうぞ。 頼むよ~溜まっちゃってさぁ MUR見ろよ見ろよ/364364 あっ(MUR) あっ、おい、待てぃ/あっ、おい待てぃ/あっ、おい待ていあっ、そっかぁ。 あっつーいいゾ~これ/いいぞ~これ/いいぞーこれ うそだよ。おし、じゃあぶち込んでやるぜ/おし、じゃあブチ込んでやるぜおし!じゃあぶち込んでやるぜ/おし!じゃあブチ込んでやるぜおし!じゃあぶち込んでやるゾ~これ/おし!じゃあブチ込んでやるゾ~これおっ、そうだな。 そうだよ/そうだよ(便乗) ポッチャマ・・・当たり前だよなぁ?KMRありがとうございます… じゃ、流しますね/じゃ流しますねなんで見る必要なんかあるんですか/なんで見る必要があるんですかやめてくれよ… 遠野あ^~いいっすねぇ^~/あーいいっすねー う、羽毛… ターミナルさん!?マズいですよ!/マズイですよ!/まずいですよ! やめてくださいよ本当に!AKYSエンジン全開! どうにかしろTNOKあくしろよ おいお前らクルルァついてこい おいゴルァ!バカじゃねぇのKBTIT(タクヤさん)ありがとナス! ウッソだろお前/ウッソだろお前wwwおちろ! おちたな かしこまり! ふざけんじゃねぇよもう許さねぇからなぁ?/もう許さねえからなぁ? もう許せるぞオイ!従順になるまでやるからな/従順になるまでやるからなぁ重巡になるまでやるからな/重巡になるまでやるからなぁ 悲しいなぁ必要ねぇんだよ 虐待おじさんYO! えぇ… おじさんのこと本気で怒らせちゃったね おつかれーこの無惨な姿よぉ/この無惨な姿よおなぁ じゃあオラオラ来いよオラァ!悪い子はお仕置きだど~/悪い子はおしおきだど~ 工事完了です…真ん中来いよ! 動くと当たらないだろ! 突っ込めって言ってんだよひでああああもうやだああああ! あーいったい痛い痛い!/あー痛い痛い痛いああ逃れられない! おじさんやめちくり~ ダイナマイッでらいたい!/出会いたい! ねぇ分かった分かった分かったよもう/ねぇ分かった分かった分かったよもぉほんとぉ? やだ!やだ!ねぇ小生やだ! ライダー助けて! 痛いんだよぉ!痛い痛い痛いやだああああ!課長こわれるいや~キツいっす/いやーキツいっす/いやーきついっすお兄さん許して/お兄さんゆるして こわれる 壊れちゃ~^う/壊れちゃ~う/壊れちゃーう関西クレーマー14万!? あ ほ く さ/あほくさ あっ。 あのさぁ うせやろ?/うそやろ?ええやん お前クビや ここ無いやん つっかえ! どうしてくれんねんお前なにこれ? なんぼなん? ボッタクリやろこれ! ままええわ親方に電話させてもらうねスマブラ(淫夢)3人に勝てるわけないだろ! ドロヘドロバカヤロウお前俺は勝つぞお前 もう始まってる!やはりヤバい/やはりヤバイやめろォ(建前)ナイスゥ(本音)/やめろォナイスゥ 何だこいつら!?警察だ! 三人に勝てるわけないだろ!流行らせコラ! 流行らせコラ!1 流行らせコラ!2 流行らせコラ!3ゆうさく気を付けよう! (注意喚起)現場監督ammo F.C.O.H. あーゆるして亭ゆるして うわーすごいよークイズ入らないみたい ちわ! てゐー! どっちだよ 終わっ…たぁ!西田敏行 太すぎるッピ! 恥ずかしくないのかよ?入っちゃっ・・・・・たぁ!/入っちゃっ…たぁ!ケツデカピングー系(男泣き) ~^~^ Here We Go/H.W.G. I.I.O. IKKO K.C.K. K.C.K.C.S.K.K.M. あ、そうですね あぁ^~ようしみる ああいけません!あーやばい! ああ恥ずかしいやだこんな恥ずかしい アイアンマンアイーン あひ! イッパイイッパイホシイイイイイイイイ!!!!イクイクイクイクイクイクイクイクよぉイクゥ!ウァァ!!オレモイッチャウゥゥゥ! えぇ? おじさんキモいよ!おっぱいド素人 おっp…おっぱげた/おっぱげた おま.んこぉ^~きしょい… このオッサンは… このやろう醤油瓶 こんなん生まれて初めてだホント ご褒美はないんだぞ?そこそこですね それがお前の望みなら だめ!だめ!ちゃんちゃちゃちゃんちゃん! ちょっとズレてるかな ちょっと横暴ですねちょ助けて… テンション低っ なんか…だめだな… はいお願いしますバラしたいなって ブルっちゃうよ… ほんまギルティーまさかこんな感じると思わなかったんでね マジで亡くなったらどうしようやめてください! やられてしまいました よくもお前はションベンを/良くもお前はションベンをわかんないね… 違うだろぉ?/違うだろ? 逆にいいかもしれない狂いそう…!/狂いそう! 玉も竿もでけぇなお前 山崎邦正次回もお願いします 動物裁判だ 入っちゃったじゃねぇかよ 鞭が入るぞ鞭が両方、両方ありますその他K!B!S! NG. ~はNG NG… うんちして♡/UNCして あ^~たまらねぇぜ/たまらねぇぜ あーあもう滅茶苦茶だよ/あーもう滅茶苦茶だよ アツゥイ!イキスギ/イキスギィ イクゾオォォォ!おっ、開いてんじゃーん/おっ開いてんじゃーん オッハー!おとなしくしててくれる/大人しくしててくれるお前そんなことでワシが許すと思っとんのか キャンセルだクソが/くそが ゲームのカード落としちゃった! こうだぞ!こっからが本番なんだよ これって…勲章ですよ しびれる!すいませへぇぇん そうだよ(偽者)/そうだよ(偽物)/そうだよ。(偽者)/そうだよ。(偽物)そのための、右手/その為の、右手 それ一番言われてるからな/それ一番言われてるから/それ一 そんなぁ~ダイナモ感覚 どう、出そう? どうか行かないで ドバー ドバーッ!ドバーッっと出してきた なんか文句があるなら言ってみろ!なんだこのオッサン!? なんで?(殺意)はい、ゲームのカードを落としてしまったのですが ふざけんな!フラーッシュ!/フラッシュ! へなちょこ まだ時間かかりそうですかねぇもっと目立てよ目立て やったぜ やったぜ! やったぜぇ! やったぞやめようね! ん?今なんでもするって言ったよね?/ん?今右センター13番赤沼源太 横向くんだよ90度/横向くんだよ90° 乙ゥ~ 嫌です… 最強雄筋肉TNPバトル 次行こうぜ 終わり!閉廷!笑っちゃうんすよね/笑っちゃうんですよね 冗談はよしてくれ申し訳ないが 水素水はクソじゃ 落としたぁ 落としちゃった!教えはどうなってんだ教えは!その他例のアレ(対馬編集) ウィイイイイイイイイイイイッス! ウィイイイイイイイイイイイッス!! えーどうしてーおい!それってYO! おい!なんでYO! オラァ!結婚したのか… 俺以外の奴と… お前と結婚するのは… 俺だと思ってた… 今夜は… 帰したくない…たまんねぇぞ! ダメです。では諸君!サラバダー パーン!なんだこれはたまげたなぁ やったぁ!/やったあ! やったぁー!/やったぁ~/やったぁ^~気にするな! 忘れてたぁ!その他S E X! アイヤイヤヤーヤーヤーヤーヤー いいぞぉ! イクゾーいざ尋常に ウ ン チ ー コ ン グって知ってる?ウンチーコングって知ってる? うんちを焦がす えぇ!?おっぱいプルンプルン キモティー! クロエ・ルメールですよこなああああああゆきいいいいいい コレガワカラナイ さぁ行こうぜシャバドゥビタッチヘンシン シュワット!/シュバット! すり替えておいたのさ! ソイヤ!ダーッ! ダサいし! だまりゃ! ちくしょーめ! 超許さん!/ちょー許さん!/チョー許さん! ついやっちゃうんだ デトロイト市警だ!どうかしてるぜ! と思っていたのか? な~んちゃって なんでや!ひ ろ が る プ ラ ズ マ ファイナルベントフタエノキワミ、アッー! ヘアァ!? ヘイ! ホ!いつの間にボクは…正常だよ まぁ、そうなるな マァァァァァァァァ/マァァァァ まな板にしようぜ!もちろんさぁ! やめないか! やめなされ! やらないか やりました。わしとお前の仲ZOY! 中に入れるZOY! 中々ZOY! 悪行はそこまでじゃ! 異議あり! 一番いいのを頼む一番乗りの勲章は頂きだ! 運動会プロテインパワー!何か不満がおありですか? 何なりとお使い下さい何なんだぁ今のはぁ?/何なんだぁ今のは? 究極の食材よ来たれ! 結果発表止まるんじゃねぇぞ… 糸色 丁頁 身寸 米青 浄化をぉぉぉぉ真っ赤な誓い 神は言っている…ここで死ぬ定めではないと 性欲を持て余す。生意気なヤローだぜ 槍VS砲台 足らんかった 待ってってば!大丈夫だ、問題ない 超!エキサイティン!! 天皇陛下万歳 天地を焦がす南無三! 熱盛!熱盛!1 熱盛!2 熱盛!3 熱盛!4 熱盛!5 不知火です野 田 内 閣/野田内閣 落ちろよぉぉぉぉ! でたーでた!でたぁ!効果音33-4 (NT-D) (UC) (デイリー達成) (任務達成)(ホ/モ/ビ/ー/ム) (惨劇回避) (追突)(7F)(絶唱) 【GARO】 【GOD】 Gene's_Rock-a-byeアナル地獄賞 オーモーイーガー ガチャ ガラガラガラ カレー カンッ!チャカポコ デデーン! デデドン! テレレレレレレレレー↑↑↑↑ トゥールールットゥットゥールードカベン バァン!(大破)/バァン! バジリスクタイム ブッチッパ!ブッピガン ポポポポポポ 気を付けよう!/(注意喚起) 糸冬 除夜の鐘ガチャ入って、どうぞ。
コメント抽出
チャットの時と同じように
ソースコード(クリックで展開)
import os
import json
dir_in = "./youtube"
for i, filename in enumerate(os.listdir(dir_in)):
if filename.endswith('.info.json'):
file_in = os.path.join(dir_in, filename)
comments = []
with open(file_in, 'r', encoding='utf-8') as f:
print(f"[{i}] {file_in}")
data = json.load(f)
commentsData = data.get("comments", [])
for commentData in commentsData:
comment = {
"authorName": commentData["author"],
"authorId": commentData["id"],
"text": commentData["text"],
"likeCount": commentData["like_count"],
}
comments.append(comment)
dir_out = os.path.join(dir_in, "comment")
os.makedirs(dir_out, exist_ok=True)
file_out = os.path.join(dir_out, filename)
with open(file_out, 'w', encoding='utf-8') as f:
json.dump(comments, f, indent=2, ensure_ascii=False)
投稿者ごとにまとめる
ソースコード(クリックで展開)
import os
import json
dir_in = "./youtube/comment"
histories = {}
for filename in os.listdir(dir_in):
if filename.endswith('.info.json'):
file_path = os.path.join(dir_in, filename)
with open(file_path, 'r', encoding='utf-8') as f:
comments_data = json.load(f)
for comment in comments_data:
author_name = comment.get("authorName")
text = comment.get("text", "")
like_count = comment.get("likeCount", 0)
if author_name not in histories:
histories[author_name] = []
video_id = filename.split('[')[1].split(']')[0]
comment_info = {
"text": text,
"likeCount": like_count,
"videoId": video_id
}
histories[author_name].append(comment_info)
dir_out = dir_in
os.makedirs(dir_out, exist_ok=True)
file_out = os.path.join(dir_out, "authors.json")
with open(file_out, 'w', encoding='utf-8') as f:
json.dump(histories, f, indent=2, ensure_ascii=False)
タグ:
#youtube