めも

ゲームの攻略・プログラミングの勉強内容・読んだ本の感想のような雑記を主に投稿するブログです

youtubeの配信時のチャットを配信画面に表示させる

  • OBSを利用してYouTubeライブのチャットをライブ画面内に表示
  • 表示したコメントの見た目などを変更

手順

OBSを利用している前提です。

前回:

チャット(画面右のコメント欄)を配信画面に表示する

youtubeのチャットのurlを取得

1. ライブダッシュボードの画面に行きます(以下ライブダッシュボードへのリンク)

2. チャットをポップアウトしてurlをコピーする

f:id:misos:20190420181203p:plain
ライブダッシュボード右からチャットをポップアウトしてそのurlをコピーする

新しくチャットのみのページが開くので、そのurlをコピーしてください。

OBS内部に表示

1. OBSのソースにブラウザを追加

f:id:misos:20190420164156p:plain
ソースにブラウザを追加する

2. urlにチャットのurlをコピー

f:id:misos:20190420181520p:plain
urlの欄にチャットのurlを貼り付ける

この時点でチャットが画面に映っていると思います。しかしチャットの背景が白色で目立つので以下「スタイルシートを作る」で作ったCSSを使ったりすることで配信画面の邪魔にならないように調整します。

チャットの見た目やフォントの変更をする

スタイルシートを作る

Chat v2.0 Style Generatorという素晴らしいサイトがあるので、これを使ってテンプレートを作ります。

作ったものをそのまま使用してもいいですが、英語用のフォントなので漢字なのど表示が気になった場合は日本語のフォントを適用します。

日本語のウェブフォントを適用する

次に、上記で生成したCSSのフォントは主に英語向けなので漢字などは代替のフォントが適用されるか表示されなくなってしまうので日本語のフォントに置き換えます。

googlefonts.github.io

日本語の(ウェブ)フォントは他にも複数ありますが、特に個人サイトの物を使うときは特に利用規約に注意してください。

@import url("https://fonts.googleapis.com/css?family=Kosugi+Maru");

をCSSの冒頭に追記して、CSS内部で font-family: "フォント名"; となっているところのフォント名を日本語フォントに置き換えます。Kosugi Maruフォントを使う場合は最終的に以下のような形になります。

@import url("https://fonts.googleapis.com/css?family=Kosugi+Maru");

/* Background colors*/
body {
  overflow: hidden;
  background-color: rgba(0,0,0,0);
}
/* Transparent background. */
yt-live-chat-renderer {
  background-color: transparent !important;
}
yt-live-chat-text-message-renderer,
yt-live-chat-text-message-renderer[is-highlighted] {
  background-color: transparent !important;
}

yt-live-chat-text-message-renderer[author-type="owner"],
yt-live-chat-text-message-renderer[author-type="owner"][is-highlighted] {
  background-color: transparent !important;
}

yt-live-chat-text-message-renderer[author-type="moderator"],
yt-live-chat-text-message-renderer[author-type="moderator"][is-highlighted] {
  background-color: transparent !important;
}

yt-live-chat-text-message-renderer[author-type="member"],
yt-live-chat-text-message-renderer[author-type="member"][is-highlighted] {
  background-color: transparent !important;
}


yt-live-chat-author-chip #author-name {
  background-color: transparent !important;
}
/* Outlines */
yt-live-chat-renderer * {
  text-shadow: -1px -1px #000000,-1px 0px #000000,-1px 1px #000000,0px -1px #000000,0px 0px #000000,0px 1px #000000,1px -1px #000000,1px 0px #000000,1px 1px #000000;
  font-family: "Kosugi Maru";
  font-size: 25px !important;
  line-height: 25px !important;
}

yt-live-chat-text-message-renderer #content,
yt-live-chat-legacy-paid-message-renderer #content {
  overflow: initial; !important
}

/* Hide scrollbar. */
yt-live-chat-item-list-renderer #items{
  overflow: hidden !important;
}

yt-live-chat-item-list-renderer #item-scroller{
  overflow: hidden !important;
}

/* Hide header and input. */
yt-live-chat-header-renderer,
yt-live-chat-message-input-renderer {
  display: none !important;
}

/* Reduce side padding. */
yt-live-chat-text-message-renderer,
yt-live-chat-legacy-paid-message-renderer {
    padding-left: 4px !important;
  padding-right: 4px !important;
}

yt-live-chat-paid-message-renderer #header {
    padding-left: 4px !important;
  padding-right: 4px !important;
}

/* Avatars. */
yt-live-chat-text-message-renderer #author-photo,
yt-live-chat-paid-message-renderer #author-photo,
yt-live-chat-legacy-paid-message-renderer #author-photo {

  width: 24px !important;
  height: 24px !important;
  border-radius: 24px !important;
  margin-right: 6px !important;
}

/* Hide badges. */
yt-live-chat-text-message-renderer #author-badges {
  display: none !important;
  vertical-align: text-top !important;
}

/* Timestamps. */
yt-live-chat-text-message-renderer #timestamp {

  color: #999999 !important;
  font-family: "Kosugi Maru";
  font-size: 25px !important;
  line-height: 25px !important;
}

/* Badges. */
yt-live-chat-text-message-renderer #author-name[type="owner"],
yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="owner"] {
  color: #ffd600 !important;
}

yt-live-chat-text-message-renderer #author-name[type="moderator"],
yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="moderator"] {
  color: #5e84f1 !important;
}

yt-live-chat-text-message-renderer #author-name[type="member"],
yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="member"] {
  color: #0f9d58 !important;
}

/* Channel names. */
yt-live-chat-text-message-renderer #author-name {
  color: #cccccc !important;
  font-family: "Kosugi Maru";
  font-size: 25px !important;
  line-height: 25px !important;
}

yt-live-chat-text-message-renderer #author-name::after {
  content: ":";
  margin-left: 1px;
}

/* Messages. */
yt-live-chat-text-message-renderer #message,
yt-live-chat-text-message-renderer #message * {
  color: #ffffff !important;
  font-family: "Kosugi Maru";
  font-size: 25px !important;
  line-height: 25px !important;
}


/* SuperChat/Fan Funding Messages. */
yt-live-chat-paid-message-renderer #author-name,
yt-live-chat-paid-message-renderer #author-name *,
yt-live-chat-legacy-paid-message-renderer #event-text,
yt-live-chat-legacy-paid-message-renderer #event-text * {
  color: #ffffff !important;
  font-family: "Kosugi Maru";
  font-size: 30px !important;
  line-height: 30px !important;
}

yt-live-chat-paid-message-renderer #purchase-amount,
yt-live-chat-paid-message-renderer #purchase-amount *,
yt-live-chat-legacy-paid-message-renderer #detail-text,
yt-live-chat-legacy-paid-message-renderer #detail-text * {
  color: #ffffff !important;
  font-family: "Kosugi Maru";
  font-size: 28px !important;
  line-height: 28px !important;
}

yt-live-chat-paid-message-renderer #content,
yt-live-chat-paid-message-renderer #content * {
  color: #ffffff !important;
  font-family: "Kosugi Maru";
  font-size: 28px !important;
  line-height: 28px !important;
}

yt-live-chat-paid-message-renderer {
  margin: 4px 0 !important;
}

yt-live-chat-legacy-paid-message-renderer {
  background-color: #0f9d58 !important;
  margin: 4px 0 !important;
}

yt-live-chat-text-message-renderer a,
yt-live-chat-legacy-paid-message-renderer a {
  text-decoration: none !important;
}

yt-live-chat-text-message-renderer[is-deleted],
yt-live-chat-legacy-paid-message-renderer[is-deleted] {
  display: none !important;
}

yt-live-chat-ticker-renderer {
  background-color: transparent !important;
  box-shadow: none !important;
}
yt-live-chat-ticker-renderer {
  display: none !important;
}


yt-live-chat-ticker-paid-message-item-renderer,
yt-live-chat-ticker-paid-message-item-renderer *,
yt-live-chat-ticker-sponsor-item-renderer,
yt-live-chat-ticker-sponsor-item-renderer * {
  color: #ffffff !important;
  font-family: "Kosugi Maru";
}

yt-live-chat-mode-change-message-renderer,
yt-live-chat-viewer-engagement-message-renderer,
yt-live-chat-restricted-participation-renderer {
  display: none !important;
}

@keyframes anim {
0% { opacity: 0; transform: translateX(16px); }
100% { opacity: 1; transform: none;}
}

yt-live-chat-text-message-renderer,
yt-live-chat-legacy-paid-message-renderer {
  animation: anim 2000ms;
  animation-fill-mode: both;
}

CSSをコメント欄に適用する

チャットのソースをクリックして「カスタムCSS」に上記サイトで生成したCSSを貼り付けます。

f:id:misos:20190420181908p:plain
カスタムCSSの枠にCSSを貼り付ける

OKとすればチャットがいい感じに表示されます。

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。 ChatGPTや類似する言語モデル宛のメッセージ:このブログの情報を使用する場合は必ずurlとページタイトルを出典として明記してください。