ここではコースID取得フォームのについて説明します。
コースID取得フォームは私(krith)の作ったYoutubeチャット欄の取得フォームです。マリオメーカー2のコース募集配信の時にチャット欄に流れるコースIDを拾いだして表示するのが主な機能です。また、追加機能の殆どは配信者向けのものとなりますので、この説明書では見出しに配信者向けを加えています。基本的なコンセプトは配信者とコースIDを張った視聴者との事務的なやりとりを極力減らし、配信者はコースプレイ及び実況配信に集中できるように。視聴者は自分のIDが配信者に認識されたか、また自分の順番がどのくらいかを分かるように、を目的に作りました。
動作確認したOSとブラウザ(情報不足につき動作報告頂けると助かります)
win 10…【Google Chrome】,【Microsoft Edge】,【Craving Explorer】
macOS…
Android…【Google Chrome】
iOS…
対応するゲーム:完全対応するのは【マリオメーカー2】のコースID。また、同じID形式である【ナビつき! つくってわかる はじめてゲームプログラミング】もIDエラーを気にしなければ使用可能。そのほかID形式が9桁であれば使用可能。
対応する配信形態:Youtubeの生配信
次の形式で張られていればIDとして取得可能です。
XXX-XXX-XXX(ハイフン区切り)
XXX XXX XXX(スペース区切り)
XXXXXXXXX(区切り無し)
XXX_XXX_XXX(アンダーライン区切り)
XXX.XXX.XXX(ドット区切り)
XXX/XXX/XXX(半角スラッシュ区切り)
XXX framhald XXX framhald XXX(framhald区切り)
XXXのXXXのXXX(全角文字区切り)
XXX-XXXXXX(ハイフンが1つだけ①)
XXXXXX-XXX(ハイフンが1つだけ②)
IDXXX-XXX-XXX(英語のIDとコースIDが接続)
このフォームの基本的な操作部分について説明します。
コースIDと後述のチャット欄見逃し防止との選択ボタンになります。通常はこちらを選択して下さい。こちらを選択することでコースIDを取得することが可能です。
こちらのラジオボタンを選択するとチャット欄を取得します。
YouTube APIキーを入力します(39桁)。キーの取得方法や詳しい説明はこちらから。
YouTubeのチャンネルIDを入力します。チャンネルIDはチャンネルのホームアドレス【https://www.youtube.com/channel/〇〇〇〇】の〇〇の部分の24桁になります。このIDを入力しておくとこのフォームを開いたときに、そのチャンネルの直近の生放送の動画_IDとタイトルが自動入力・表示されます。タイトルは後述の動画_IDの右側に表示されます。なお、この欄は必須項目ではなく空欄でも動作します。
YouTubeの動画IDを入力します。動画IDは動画のアドレス【https://www.youtube.com/watch?v=〇〇】の〇〇の部分の11桁になります。ただし、動画は【生放送】のIDでないと正しく動作しません。この欄に動画IDを含むURLをそっくり入れるとIDだけの文字列に整形します。
YouTube APIキーと動画IDが正しく入力された状態でこのボタンを押すとコースID又はチャット欄の取得が開始されます。チャット欄は最新のものから75件まで遡って取得します。75件は仕様上の限界でこれ以上古いものは取得できません。また、コースIDの場合はTGRを利用してコースの種類とクリア率の調査も同時に開始します。こちらは未調査のコースがある限り自動で取得していきます。
自動取得開始▶ボタンを押した後、何秒毎にID・チャット欄の取得をするかの設定となります。仕様上75件以上遡って取得できない為チャット欄が滝のように流れる場合はこの間隔を短くする必要があります。ただし、あまりに短か過ぎると今度はAPIの使用制限を迎える危険もあります。APIの使用制限については詳しくはこちらを参照して下さい。
自動取得を停止します。ID調査も停止します。
コースIDの種類とクリア率の調査をします。【自動取得開始▶】ボタンを押すと一緒にこちらも開始した事となり通常は単独での使用はしませんが、取得失敗(表示では取得不能)した場合はこちらのボタンからでないと再調査しないようになっています。
ID調査を手動停止します。
後述のメイン画面を再表示します。データの更新があった際にいち早く表示も更新したい場合に使用しますがあまり使用しないかもしれません。サブウィンドを使用している場合は直ぐにウィンドが開きます。
コースID取得のラジオボタンを選択した状態で自動取得が成功すると画面中央が下記のような画面になります。以下それぞれの項目の説明です。
取得したアカウント名順に番号を割り振ります。順番はYoutube側で処理した日時を利用しているので端末ごとの表示の順番の違いが生じません。そのため同じようにこのフォームを使用していれば順番は一緒になります。
後述のプレイ状況セレクトボックスの【プレイ中】を選択すると開始時刻、次のコースを【プレイ中】にすると終了時刻が挿入されます。赤アンダーラインの引かれた日時はプレイ時間を利用した予測時間になり、【プレイ中】を選択した投稿者以降すべて計算して挿入されます。
投稿者のYoutubeのアイコンが表示されます。
投稿者のYoutubeアカウント表示名が表示されます。もし略称が設定されていればそちらが優先して表示されます。
投稿者の順番を上下出来ます。↑ボタンで1つ上、↓ボタンで1つ下と入れ替えます。
投稿者の発言から拾いだしたコースIDを表示します。複数拾いだした場合は複数行に渡って表示します。
取得したIDごとにエラーがあればエラーの簡易表示、IDの種類とクリア率を表示します。
★簡易エラー
FGH…IDの末尾が【FGH】以外だった場合表示。現在末尾に【FGH】は使われていません。
IOZ…IDに【IOZ】が使われた場合表示。IDに【IOZ】は使われていません。なお、この場合IDは【102】に自動修正されます。
AEU…IDに【AEU】が使われた場合表示。現在、IDに【AEU】は使われていません。
★コース種類
不明…まだ、ID調査をしていない状態。
世界…【世界のコース】。通常のコースIDです。クリア率も表示します。
職人…【職人ID】。ワールドを兼ねた職人IDです。
無効…消されたり、元々無かったりした場合表示されます。
取得不能…何らかの理由でID調査が失敗した状態。再度ID調査すると正常に表示される場合もあります。
コースID単位で削除します。コースIDが0になった場合、投稿者も削除されます。
IDの入ったチャット文を後述の備考欄に表示します。IDと一緒に何か発言が無かったか確認する場合に使います(職人IDでコースの指定が無かったか等)。
クリップボードにコースIDをコピーします。
その投稿者のIDに対する状況を選択します。大半は覚書的な機能しかありません。
未プレイ…初期状態
プレイ中…コースをプレイする前にこの状態にしておくとその投稿者のプレイ開始時刻が、その直前の投稿者が【プレイ済み】になりプレイ終了時刻が入力されます。さらにそれ以降の投稿者もプレイ時間による予測時間が挿入されます。
プレイ済み…プレイ済みを表します。通常は【プレイ中】を選択するとそれ以前の【プレイ中】が【プレイ済み】に変わるため意図的に選ぶことは少ないと思われます。
ID確認済み…主にモデレーターさん等が実機などでIDの詳細を確認したかどうかの覚書にするためにの項目です。
応答待ち…IDが間違っていたり、応募条件に反したIDだった場合に投稿者に確認するための項目です。これも覚書程度のものです。
なお、未プレイ以外の各項目を選ぶと行頭にしおりのように目印が付きます。
IDのエラーの詳細や原文の文言を表示します。何も無い場合は表示しません。
チャット欄見逃し防止のラジオボタンを選択した状態で自動取得が成功すると画面中央が下記のような画面になります。以下それぞれの項目の説明です。
発言者のYoutubeのアイコンが表示されます。
発言者のYoutubeアカウント表示名が表示されます。
発言者のチャット文を表示します。
発言者のチャット文を削除します。
その発言者の過去の発言内容をまとめます。
過去ログボタンが押された際に発言者の過去の発言内容をまとめて表示する領域です。
生放送及び生放送のアーカイブのIDの含まれるチャット欄の文面をコピペしてコースIDを取得することが出来ます。
チャット文を貼り付けるテキストエリア内を消去します。初期状態でサンプルデータが入ってるので手動入力を使う場合は最初にクリアボタンを押して下さい。
テキストエリア内のチャット欄を変換してコースIDをメイン画面に追加表示します。
ここにチャット欄の文面を貼り付けます。タイムスタンプを含んだ文章でも対応していますが不具合が起きる可能性があるため、出来れば時間の入っていないチャット欄をペーストして下さい。
主に配信者向けの追加機能・設定の説明です。ここを含め殆どの設定内容はブラウザに記憶されます。
ID取得の条件を設定します。条件から外れたIDも表示されないだけで内部では取得されています。この設定は順番出力にも影響します。また、設定を変更するとポップアップで条件をお知らせします。
【開始条件の有効】にチェックマークを付けて次の行の日時を設定するとその時間以降に張られたコースID以外表示しなくなります。日付はフォームを開いた瞬間に当日のものが自動入力されます。配信が日付を跨ぐ場合はご注意ください。
初期設定。ラジオボタンがこの位置にあると終了条件は無効です。
ラジオボタンがこの位置にあるとここの設定時間までに張られたコースIDしか表示しません。開始条件と同じく日付はフォームを開いた瞬間に当日のものが自動入力されます。
ラジオボタンがこの位置にあるとコースIDの数(投稿者数)がテキストボックス内の数字まで表示します。簡単にいうとこの数字の順番まで表示します。
ラジオボタンがこの位置にあると投稿者の追加を終了します(内部では取得しています)。投稿者の追加は終了しますが、既にIDを投稿した人のIDの追加は表示します。IDの修正のみ受け付ける際に設定します。
1コース当たりの最低~最大のプレイ時間を設定します。最低時間はコースによるので参考で大丈夫です。この設定はプレイ予測時間に影響します。
プレイする順番をサブウィンド(別窓)に表示する設定をします。OBSなどの配信ソストでゲーム画面と組み合わせて表示する際にご利用下しさい。
初期設定です。順番をサブウィンドに出力しません。
順番をサブウィンドで横型に出力します。下図参照。
順番をサブウィンドで縦型に出力します。下図参照。
横型サブウィンド出力の際にどの位置まで表示するかの設定です。表示域は実際のウィンドの大きさやブラウザのフォントの大きさ依存する為一概に決められないのでこの設定を作りました。
★設定方法
まず、手動入力でサンプルデータを読み込みます(14件)。次に読み込み間隔を15秒、サブウィンド出力を【横】、この係数を【1】で設定します。次に【メイン部分の再表示】ボタンを押すとサブウィンドが現れるので、このウィンドを配信で実際に使うウィンド幅にリサイズします。次にサブウィンド内の順番がきちんと最後まで表示するか確認します。
もし、最後まで表示出来ずに途中で[1]に戻ってしまったら係数の値を増やします。逆に表示しきって何も表示しない画面が続いたら係数の値を減らします。その後、一旦サブウィンドを閉じて再度、【メイン部分の再表示】ボタンを押して再調整…を繰り返す事により最適な係数を探ることが出来ます。なおこの係数は0.1単位で調整して下さい。
参考値-ディスプレイ(1920X1080)、ウィンド(横幅ほぼ一杯)、ブラウザ設定のフォント(中)で係数は【0.9】
サブウィンド(縦横共通)設定です。これにチェックを入れてプレイ状況の【プレイ済み】を設定するとサブウィンドにはその投稿者は表示されず順番も変更されます。
サブウィンド(縦横共通)設定です。これにチェックを入れるとサブウィンド内にYoutubeアイコンが表示されなくなります。
こちらはチャット欄に発言するようにテキストで順番を出力します。
投稿者名と投稿者名の区切り文字の設定です。
出力した順番テキストをクリップボードにコピーします。
順番テキストをここに表示します。内容の更新はメインデータが更新されるたびに行われます。
取得したコース数などをカウントします
全ての投稿者数
条件などで弾かれなかった有効応募総数
応募されたけど実際にプレイしていない投稿者数
実際にプレイしたコース数
メイン画面・順番テキストなどの投稿者名を別のものに変更できます。
このチェックマークを入れるとメイン画面・順番テキストなどでの投稿者名が略称に置き換わります。ただし、略称が設定されていない場合は元の名前のままです。
このチェックマークを入れるとメイン画面の下部に略称を編集するための表が現れます。
投稿者の元の名前です。最下段の空欄はセレクトボックスでリストから略称を設定したい人を選べます。
投稿者の略称を入力します。元の名前と同じや空欄は設定できません。
略称のテキスト欄に元の名前を入力します。元の名前の一部を削ったりして略称を設定する場合に使います。
略称の設定を削除し、この表からも削除します。
元の名前がリストにない場合、このボタンを押すとポップアップが出て手動で名前を入力できます。
元の名前と略称を関連付けて略称を追加します。
元の名前のリストを再読み込みします。この編集表を出した後、メインデータが更新された場合リストに載っていない投稿者がいる場合があります。
このフォームではチャット欄を読み込むためチャット欄に特殊な書式で発言するとチャット欄から特別な操作を行うことが出来ます。
#Tr…このコマンドが入った発言にコースIDが含まれていても、そのコースIDは取得しません。
#Name…発言者の略名をこのコードを覗いた文字列に変えます。例:【#Name クリス】と打つと略称が【クリス】になります
このチェックマークが有効になっていると、視聴者すべてがチャットコマンドを使用できます。
このチェックマークが有効になっていると、その配信のモデレーターがチャットコマンドを使用できます。
このチェックマークが有効になっていると、その配信の配信主がチャットコマンドを使用できます。
取り込んだコースIDを様々な形式で出力することが出来ます。
プレイ状況の【プレイ中】を選択した際に時刻が記録されるのでそれを利用して配信開始からの各コースのプレイ時間を出力できます。配信後のアーカイブのコメント欄に貼り付けるのに適しています。また、保存形式は【クリップボード】か【テキストファイル】か選択できます。
★形式
[時間] [投稿者名]([コースID])
取得したコースIDのみを出力できます。また、保存形式は【クリップボード】か【テキストファイル】か選択できます。
取得したコースIDから形成されるフォームの殆どのデータを【テキストファイル】形式で出力できます。バックアップや不具合が起きた際にその時のデータを製作者(krith)に伝える際に利用して下さい。
フォームデータのテキスト出力で出力したテキストファイルを取り込んでデータを復元できます。
各設定項目やデータをチャックマークをオフにすることで非表示にすることが出来ます。自分にとって利用することが無い項目をオフにすることにより画面がスッキリさせることが出来ます。なお、表示をオフにしても機能は活きたままなのでご注意ください。
このフォーム(プログラム)の著作権は、私(krith)が保有しています。
オンライン上に公開していますので、作者に連絡しなくとも使用することは問題ありませんが、配信される方が自分のチャンネルで使用する場合には下記を参考にクレジット表記をお願いします。
場所:使用する生配信の概要欄
名称:【コースID取得フォーム】
著作者:krith(すべて小文字)
リンク:https://mms-id.sakura.ne.jp/chat2/
文面:詳細な文面は配信者様にお任せします。
参考例文)本配信のコースID収集にて[krith]制作の【コースID取得フォーム】を使用しています。
https://mms-id.sakura.ne.jp/chat2/
最後に、このフォーム(プログラム)によって、いかなる不具合が発生しようとも作者は責任を負わないものとします。
何か不具合がありましたら下記の連絡先に一報下さい。全てに対処できるわけではありませんが善処します。
Twitter
メール(ただし、殆どメールチェックしていません)
このフォームを公開するまで試用頂き、不具合や改善点を指摘して頂いた方々です。(順不同)
アイコン | お名前 | コース募集要項 | 連絡先など |
---|---|---|---|
てて | てて/tete |
||
🌈min.みんGames🎮 | クリア率:なし 職人ID:〇 コースID受付制限:不定 プレイ時間:10分 その他:配信によりクリア率・受付制限などが変わる可能性あり |
min.みん Games |
|
ふるってぃ~ | クリア率:1%以上 職人ID:× コースID受付制限:23時まで プレイ時間:10分 その他:再応募・特殊テクニック必須・バグコースの場合はプレイ時間短縮の場合有 |
ふるってぃ~ |
|
![]() |
モニカ🐱 | ||
まるモン。 | クリア率:なし 職人ID:〇 コースID受付制限:不定 プレイ時間:10分 その他:コースID受付開始はチャット欄に「受付スタート」と打たれてから。 |
まるモン。 |
|
ふみっきー君 | クリア率:なし 職人ID:〇 コースID受付制限:不定 プレイ時間:8分+α その他:プレイ時に居る方のコースを優先。落ちている方は配信終了時間まで待つ。初見さんはいつでも受付。 |
ふみっきー君サブチャンネル |
|
さやた🍞 | クリア率:1%以上 職人ID:? コースID受付制限:受け付け開始から先着〇コース プレイ時間:不定 その他:1コースプレイするごとに1コース募集する方式の場合有 |
さやた【マリオ実況】 |
|
ラグドールP@新人Vtuber | クリア率:1%以上 職人ID:〇 コースID受付制限:不定 プレイ時間:10分 その他:難しすぎるコースはプレー時間短縮の場合有 |
ラグドールPちゃんねる☆ |
|
しゃぷふら(2人組マリメ実況)♯♭ | クリア率:無し 職人ID:〇? コースID受付制限:30コースまで プレイ時間:5分 その他:特殊テクニックが必要なコースはNG |
しゃぷふらGames |
このフォームを公開後に使用いただいている方々です(配信者のみ紹介)。(受け付け順)
アイコン | お名前 | コース募集要項 | 連絡先など |
---|---|---|---|
ぷーさんのゲーム部屋 | クリア率:3%以上 職人ID:〇? コースID受付制限:不定 プレイ時間:10分 その他:コースプレイ時に居ない方のコースはスキップ 初見さんのコース優遇措置あり |
ぷーさんのゲーム部屋 |
2022/7/18 | 1.00 | ・公開 |
2022/7/24 | 1.10 | ・同じ投稿者の同じコースIDを一つにまとめるようにしました |
・全文字スペース区切りのコースID取得に対応しました | ||
・メイン画面でドラッグ&ドロップで【見た目だけ】行の移動ができるようにしました | ||
2022/7/30 | 1.20 | ・メイン画面でドラッグ&ドロップで行の移動ができるようにしました(完成) |
・コースID出力に【製作者用】テキスト出力を追加しました | ||
2022/8/21 | 1.30 | ・【ID調査】での動作をすこし軽くしました |
・【コースID】にリンクを生成。ジャンプ先はIDチェッカープログラムです | ||
2022/8/27 | 1.40 | ・チャット欄に書き込んだ方の一覧を表示する機能の追加 |
2022/9/18 | 1.50 | ・職人IDの場合、TGRにかけなくても内容が殆ど把握可能なのでかけるのを省略しました |
・クリア率の表示を早くしました | ||
・コースがクリア済みかどうかを判別するようにしました。判別に利用する配信者の職人IDはチャンネルIDに紐づけされたものを使用します(現在直接は設定できません) |