よくよく考えて見たら、WebViewで乗っけちゃえばよくね?って思ったのでやってみました。, ソースコード: https://github.com/minakawa-daiki/YLCV 5 YouTubeライブチャットにコメントできない原因・対処法 ・ アクセス集中 ・ ライブをYouTubeのアプリで視聴 ・ ライブ時の連続投稿 ・ 通信環境が悪い; 6 コメントを背景透過しYouTubeLIVE配信に挑戦! ・ YouTubeのこの記事が気になった人へのおすすめ! ちなみに社内では、代表のMSTをはじめとする多数の勇者がパーティを組んで、こぞってウォーク(冒険)へ出かける様子をしばしば見かけます。, さて、われわれLIVEプロダクション事業部では、スマートフォンゲーム・コンシューマーゲームの番組に限らず、それ以外にも音楽系、学術系、企業の発表会など多岐にわたり、番組・映像コンテンツの"ライブストリーミング配信"のお仕事をさせてもらっております。(実績や近況は弊社Facebookページをぜひフォローしてください!), これらの配信、『YouTube Live』を用いて配信をすることが多いのですが、配信をしている側からすると、チャットで視聴者のみなさんがどういう反応をしているのか、実は、というか、かなり気になっております。. soup = BeautifulSoup(html.text, "html.parser") #html解析 YouTube Live のチャットで NG ワードを含むものを非表示にする。 - NG ワードを自由に設定 - ライブ配信、アーカイブ、プレミア公開に対応 ## 使用方法 インストール後、アドレスバーの右にある拡張機能のアイコンを左クリックし、非表示にしたい NG ワードを一行ごとに入力してください。 falseとtrueの表記を直す samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["clientId"] がしかし、まだUSUMはおろかピカチュウ&イーブイもクリアしてません、、。 コロナ禍での新たなスタイル第二弾、リモート … samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["authorExternalChannelId"] dict_str = dict_str.rstrip(" \n;") samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["authorPhoto"]["thumbnails"][0]["url"] multiprocessingドキュメント, 以下コード(長いので一部省略) やはり外部パッケージのpytubeとMoviePyの存在が大きかったと思う、自分のタスクとしてはチャットの解析と並列処理の部分で、動画DLと動画の切り出しに関しては外部パッケージに依存している。 YouTube Liveのチャット(コメント)は、ライブ中にリアルタイムで取得することはYouTube Data APIを用いることで可能なのですが、アーカイブから取得するという操作はAPIにはありません。. """ samp["replayChatItemAction"]["videoOffsetTimeMsec"], チャット取得コード(長いので一部省略) このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。, YouTube、クリエーターに投げ銭できるステッカー「Super Stickers」を提供開始, 自社の働き方改革の取り組みに効果を感じている企業は「2割」の衝撃!調査から明らかになった課題とは, 「顧客の今」がなぜビジネスに貢献するのか - HBR調査で見る「リアルタイムアナリティクス」の効果, 「ゲーム&ウオッチ スーパーマリオブラザーズ」開封の儀--現代の技術で懐かしさ甦る, 「米は力だ」「稲を育てて強くなる」--和風アクションRPG「天穂のサクナヒメ」が発売, Facebook、「Messenger」と「Instagram」でメッセージが自動消滅するモードを導入, SIE、次世代ゲーム機「PlayStation 5」を発売--神田明神をライトアップ, 急須を使わずおいしいお茶を--IoTで入れ方を最適化する「Teploティーポット」CEOインタビュー, コロナ禍でも本質は「何も変わっていない」--西口一希氏に聞くマーケティングにいま必要なこと, メンターは世界中のGoogle社員--日本チームのトップに聞くGoogle流スタートアップ支援, ユニリーバ・ジャパンの新たな副業人材募集「WAAP」の発起人に聞く--求める「PC人材」とは?, 課金か、それとも乗り換えか--「Googleフォト」の無制限アップロード終了で考えられる選択肢. from multiprocessing import Process, Queue, Pool YouTubeLiveの生放送から盛り上がった箇所を自動抽出するCLI 取得できるチャットデータ ぜひよかったら配信者の方は使ってみてください。, HP: https://minakawadaiki.com or its suppliers. pros.start() #Chrome拡張機能 ; #YouTube; #YouTube Live; 1万人も夢じゃない! インスタグラムでフォロワーを増やす方法. # window["ytInitialData"] = {チャットデータ一覧} を分割 c_count=coment_analysis.analysis(target_url) try: ダウンロード: https://github.com/minakawa-daiki/YLCV/releases/tag/v0.1.0 samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["authorPhoto"]["thumbnails"][0]["width"] 参考URL:https://blog.hubspot.com/marketing/how-long-should-videos-be-on-instagram-twitter-facebook-youtube, 動画DLとチャット解析は独立した処理なので並列処理を行うことにした。しかし、pythonにはGIL(Global Interpreter Lock)という仕組みがあり、1プロセスに1つのインタプリタしか割り当てられないので1プロセスでは並列処理ができないことが判明した。(もっと正確には、GILを取得している1スレッドはPythonのコードの実行を行えるが他スレッドは動かせないとのこと)、どうやら複数プロセスを扱う必要があるらしい Related Entries. #print("取得できないコメントです") pros=Process(target=videodl, args=(q,video_objct)) #動画DL q=Queue() #DLパス記録用のキュー インストールの方法は割愛します。まったく難しくはないです。, 任意のYouTube ライブのストリームにジャンプして、先ほどのアイコンをクリックすると、、、, たーのしー!ように見えますよね。 comment_count=q2.get() import lxml 二つ目は前後の流れの把握のためだ、なぜ盛り上がっているのか把握するためには前後の流れも動画に含める必要がある、というのも、盛り上がり箇所10秒間を切り抜いただけでは話の流れを理解することが難しいからだ pros2.start() 視聴者側の端末でミュートされていることが大半です、、、。 個人的には、最近はどうしても、手軽にプレイできるスマートフォンゲームに、文字通り、食指が動きがちです。 dict_str = dict_str.replace("false","False") 以上の理由から、抽出する時間範囲にある程度の余裕を持たせる必要があると考えた。, しかし、前後の流れの時間幅は千差万別であり、これだけの時間を設定すれば抽出できるという明確な閾値がない、というかそんな閾値出すの無理なんじゃないか?, 「動画は2分くらいが丁度いいというデータがある」という理由をこじつけて2分にした(正直この辺の時間設定は適当、とりあえず何か理由のある値が欲しかった) etc... あるあるなのが、「音が聞こえないよ」というコメント。 from bs4 import BeautifulSoup The Japanese edition of 'CNET' is published under license from A Red Ventures Company., Fort Mill, SC, USA. video_path=q.get() 以前、YouTube Live Player「Madoka」を作った時に、コメビュの部分がAPIの都合上、ポーリングでしか取得できず、なかなか厳しいものがあったので、リアルタイムで取得できないかと考えていました。 def main(): By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. 抽出処理の時間分待ち時間削ってないし、500ms分固定でプラスしてるのもイケてないのかも。 某所のコメントログでは比べるとどちらも抜けがあるしチャットは結構きついのかなぁ What is going on with this article? 夏休みの強敵、「自由研究」をサクッと終わらせるお役立ちサイト!, ディレクター的『Visual Studio Code』の活用法 〜MarkdownのリアルタイムプレビューでBacklog用文章作成を直感的に〜. コメントデータの場所が変更されたのを確認 2019/6/27 if "window[\"ytInitialData\"]" in scrp.text: v_path=video_objct.dounlord_video() #動画のダウンロード処理 2020.09.11. TriCaster 2 Elite開封式 元TVディレクターがTriCasterオペレーターを目指す!, 新しい生活様式における働き方についての考察 ~リモートワークってどうなのかしら?~, コロナ禍での新たなスタイル、「オンライン酒蔵見学」を実施・運営している動画・WEBサイトまとめ, [OOCSS/BEM/SMACSS] HTML/CSSのclassの命名規則について、今ふたたび考える, あなたは正しく発音できる? Web業界でよく使われる読み方が分かりづらい英語を調べてみた, WordPressのカスタムメニューをカスタマイズして出し入れ&並び替え自由なUIを作る, チャットの背景を透過して配信画面にのせたり、(よくL字型のワイプの端にでてるやつ), 送られてきたコメントを読み上げて配信にのせたり、(よく棒読みの女性の声がでるやつ). (・・・略) samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["contextMenuEndpoint"]["clickTrackingParams"] あとは、プレイヤーのボリュームが上がってない、など。, もちろん、機材を組んでいる段階で、しっかりと音声が通るように設計してますし、組み上がった後もリハーサルやテスト配信で確認を行なっているのですが、このようなコメントを見るとちょっぴり焦ります。汗, とはいえ、絶対にないとは言い切れないもので、できる限りそういうことのないよう、また万が一発生してしまったら迅速に対処できるよう、緊張感を持って現場へ臨んでおります。, で、 Help us understand the problem. samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["authorPhoto"]["thumbnails"][1]["width"] チャット解析. Google傘下のYouTubeは、視聴しているチャンネル上で他のユーザーのコメント履歴やアクティビティーを確認できる新機能「Profile card」をリリースする。, ユーチューバーに関する情報は、プロフィール名や登録チャンネル、プロフィール写真、チャンネル登録者数、最近のコメントなどがすでに一般に公開されているが、Profile cardはこうした既存のデータを統合して、1カ所で参照できるようにする。, TechCrunchが報じているように、この仕組みは2019年9月に試験運用が始まった。Profile cardには、ユーザーのコメント履歴がすべて表示されるわけではなく、訪問しているチャンネルにおけるコメントだけが表示される。, YouTubeはこの新機能について、「ユーザーがより多くのコメントを確認し、他のユーザーとのつながりを築き、YouTubeを全体としてより友好的な場にすることに貢献できるよう役立てたい」としている。, YouTubeによると、ユーザーはコメントした人のプロフィール写真をタップしてProfile cardを引き出すことができ、Profile cardには、その人の公開情報が表示されるという。, Profile cardの下部には、「View Channel」(チャンネルを見る)リンクもある。, この機能は、まずモバイルOS「Android」で今後数日のうちに提供される。将来的にその他のデバイスでもリリースされる予定だ。, この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。, これまでの知見・経験が高めるユーザー満足ビデオ会議ツールAvaya Spacesを試してみた, 録画したWeb会議で組織の情報共有を円滑化営業活動に必要な機能を備えたベルフェイス. JavaScriptの設定を有効にしてご利用ください。無効の場合、当サイトを正常にご利用できません。, Switchのポケモン新作が発売されましたね。 特に、スマートフォンで番組を視聴する方は、マナーモードを解除しておこうね...! #joinするまえにデータを受け取らないとerrorになる pros.join() samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["message"]["simpleText"] 通常はブラウザの右側に表示されていますが、ちょっと面白い表示方法を見つけたので紹介しますね。, Chromeのアドオンの、『YouTube Live Chat Flow』というものを使用します。 pros2.join(), 複数プロセスを扱うのでデータの受け渡しはキューで行った。データ受け渡しの際に、joinでプロセスがブロックされるのでその前にデータを受け取る必要がある, 外部パッケージのpytubeがYouTubeの仕様変更の影響を受ける為、pytubeを起因としたエラーが発生する時がある。 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. html = requests.get(target_url) continue はやく遊びたいです。 return もちろん、シアターモード・全画面表示にしても同様です。, アカウント名の表示・非表示を選択したり、不快なコメントのブロック機能もついております。 return Copyright © 2009-2020 monsterdive inc. All Rights Reserved. チャットのコメント入力欄がプレイヤーの下部に表示されてますね。 import datetime 開始時刻と終了時刻を指定すれば指定動画ファイルから動画を切り出してくれる。, 今回開発したCLIでは切り出し位置は盛り上がり時間のリストの各要素に対して、盛り上がった時間が中央になるように各要素±1分の合計2分間を切り出している。(切り出し時間はCLIで指定できるようにした方がいいかもしれない), 抽出時間範囲をこのように設定したのには二つの理由がある。 #print(str(time_msec)+"秒") soup = BeautifulSoup(html.text,"lxml")#パーサーは処理を高速化するためにlxmlを選択 samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["contextMenuAccessibility"]["accessibilityData"]["label"] dics = eval(dict_str) samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["message"]["runs"][0]["text"] coment=str(samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["message"]["runs"][0]["text"]) 問題なく視聴できているかな? (・・・略) このチャット欄について。 1 YouTube Liveのチャットとは ・ YouTube Liveにコメントができる ・ YouTube Liveにコメントするとどうなる? 2 YouTube Liveのチャットに参加してコメントしよう ・ アカウントを作成 ・ チャンネルを作成 3 YouTube Liveにコメントできない対処法 ・ アクセスが集中している ・ 連続してコメントする #ユーザーエージェント情報(ブラウザとかの情報) #print(coment) #並行処理 「チャットのリプレイ」 samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["id"] 5 YouTubeライブチャットにコメントできない原因・対処法 ・ アクセス集中 ・ ライブをYouTubeのアプリで視聴 ・ ライブ時の連続投稿 ・ 通信環境が悪い; 6 コメントを背景透過しYouTubeLIVE配信に挑戦! ・ YouTubeのこの記事が気になった人へのおすすめ! samp["replayChatItemAction"]["actions"][0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["authorPhoto"]["thumbnails"][1]["url"] 以前、YouTube Live Player「Madoka」を作った時に、コメビュの部分がAPIの都合上、ポーリングでしか取得できず、なかなか厳しいものがあったので、リアルタイムで取得できないかと考えていました。 よくよく考えて見たら、WebViewで乗っけちゃえばよくね?って思ったのでやってみま ここで最初に思いついたのが秒間チャット数だ、秒間チャット数が多ければそこは盛り上がったシーンだと考えたが必ずしもそうではなかった。というのも、配信者が視聴者に対して質問を投げかける場面や、配信者の疑問に視聴者が応答する場面などではチャット数が増加するからだ。単純な秒間チャット数だけでは「盛り上がり」を上手く抽出できない, そこで、特定のワードに着目することで「盛り上がり」を定義することにした。というのも、ネット上では面白いという感情を表現するワードとして「草」や「w」のような文字が使われているからだ、上記のワードが語尾に含まれる場合や、これらのワードのみで構成されるチャットを秒間でカウントして数値が大きい個所を盛り上がり箇所として抽出することにした。, 実際に「草」や「w」の含まれる1秒間のチャット数をカウントしてグラフ化した画像を以下に示す。, ここで、本当に1秒間の頻度で判断していいのかと疑問に感じた。というのも、チャットは連続性があり配信者の1アクションに対して数秒に渡ってチャットが流れるからだ。ある程度の時間的な幅が必要だと考え、10秒単位でカウントすることにした。, 1秒単位では現れなかった部分が確認できる。 time_msec=int(time_msec/1000)#ミリ秒→秒に変換 for samp in dics["continuationContents"]["liveChatContinuation"]["actions"][1:]: #overflow.yt-live-chat-header-renderer{ margin-right: 32px; }, https://github.com/minakawa-daiki/YLCV/releases/tag/v0.1.0, https://electron.atom.io/docs/api/webview-tag/, you can read useful information later efficiently.