YouTubeを再生数で追うのをやめた ― 次は導入を考える人に届ける

YouTubeを再生数で追うのをやめた ― 次は導入を考える人に届ける

この記事の素材(コード・ログ・データ 4ファイル・まとめてダウンロードあり)

YouTube のチャンネルで、28日間に40,329回の再生がありました。数字だけ見ると悪くありません。ところが中身を分けると、98%は30秒ほどの縦長の短い動画(ショート)で、10〜14分の解説の本編は682回しか見られていませんでした。本編は同じ期間に19本出しているので、1本あたり約36回です。チャンネル登録は16人増えました。

研究を続けながら、ひとりで動画を作って出していると、再生数が増えれば手応えを感じます。ただ、この YouTube の目的は、ロボットの導入を考える経営者・PM・開発者に見てもらい、仕事の相談につなげることです。その人たちが見るのは本編のほうで、そこがほとんど見られていませんでした。

再生数が伸びないので問題があると思います。まずは現状のアナリティクスを分析してください。

YouTube Studio の画面と、詳細モードから書き出した17個のファイル(CSV)を並べると、次のことが分かりました。

  • ショートの4万回は「再生が始まった回数」で、ちゃんと見られたのは約1万回(推計)。YouTube はショートが流れ始めただけで1回と数えます。総再生時間を平均視聴時間で割ると約1.05万回。上位のショートでも、6〜8割の人が1〜2秒で指で次へ送っていた計算です
  • 本編のサムネイルの表示は、87%が4本に集まっていた。残りの17本は160回以下しか表示されず、YouTube がほとんど試しに見せていませんでした
  • 一番伸びたのは「ジャングリア沖縄の赤字89億円を、AIとロボットで埋められるか試算」した回。誰でも知っている場所・具体的な金額・自分で試算、の形です。反対に、サイバー攻撃や人材不足のような抽象的な話題は、表示されても100回に1回も押されていませんでした
  • 1本見た人を次の動画へ送る道がなかった。終了画面のクリックは0回、再生リストからの視聴も0回でした

そこで、チャンネルの方向と、次に出す2本の作りを変えました。

やったことなぜ結果
Studio の画面5枚と書き出した ZIP 17個を読んだ
再生数の中身を分けるため
本編は全体の1.7%、ショートの4万回は推計で約1万回
チャンネルの方針を決めた
再生数ではなく、仕事につながりそうな人に届けるため
「ロボット、入れたらどうなる?」を数字とシミュレーションで確かめるチャンネルにする。柱は3本・本編は週1本
動画の作り方の決まり(video_rules.md)の冒頭に方針を足した
次に動画を作るとき、最初に照らすため
ネタ・タイトル・サムネイルを決める前に読む節になった
配膳ロボットの2本のタイトルを、検索される言葉で短くした
試しに表示されたときに押してもらうため
【導入シミュレーション 第N回】の長い題を外し、頭を「配膳ロボット」にそろえた
2本を再生リスト・概要欄・終了画面でつないだ
1本見た人に、次の回を見てもらうため
第1回は11/9、第2回は11/16に公開予約。どちらからも次の回とシリーズへ行ける

少ないけど、目的があり、仕事に関係しそうなユーザーを獲得することを目指せたらと思います(再生数はあればいいというチャンネルではないです)

再生数を目標にするのをやめ、表示されたときに押されたか(クリック率)、中身で引きつけられたか(平均視聴率)、次の回へ進んだか、相談が来たか、の4つで判断することにしました。

この変え方で数字が良くなるかは、まだ分かりません。配膳ロボットの2本が公開されたら、クリック率と視聴の続き方を見て、前の本編と比べます。

作業ログ ― YouTube の28日間を読み、配膳ロボットの2本をつなぐまで

この記事のコード・ログ・データは、1ファイルずつ下に置いています。全文はリンク先にあります。

ファイルの一覧(4本)

01_sec01.py.txt ― コード:書き出した ZIP を読むスクリプト analyze_youtube.py・4,595字

02_sec01.txt ― 出力:analyze_youtube.py の出力・11,193字

03_sec01.txt ― データ:書き出した ZIP 17個の CSV の全文・61,897字

04_sec01.sh.txt ― コード:video_rules.md に「C. チャンネルの方針」を足したスクリプト(Mac の上で実行)・3,077字

ここから下は作業の記録です。視聴回数・表示回数・クリック率・総再生時間は、YouTube Studio の画面と、詳細モードから書き出した CSV で実際に見た値です。「ちゃんと見られた回数」は、総再生時間を YouTube が出す平均視聴時間で割った推計です。方針やタイトルを変えた効果は、まだ測っていない見込みで、何の数字で確かめるかを添えています。

期間は、Studio の画面が2026年9月29日〜10月26日(過去28日間)、書き出したファイルが9月29日〜10月27日です。数字が1日ずれる所があります。

YouTube Studio の5枚の画面では、本編の視聴は全体の1.7%だった

最初に、Studio の画面を PDF にしたもの5枚(概要・コンテンツ・視聴者・トレンド・チャンネルの動画一覧)を読みました。

YouTube Studio のチャンネル アナリティクスの概要。過去28日間の視聴回数は40,329回、総再生時間72.7時間、チャンネル登録者は16人増。上位10本はどれも1,226〜1,387回のショート
YouTube Studio のコンテンツの画面。視聴回数はショートが4万(98.3%)、動画が682(1.7%)。公開済みはショート52本・動画19本。視聴者の見つけ方はショートフィードが93.9%
YouTube Studio の視聴者の画面。月間視聴者数7,790人、うち新しい視聴者が99.8%。視聴者の増加につながっている動画はすべて「低」
画面読んだ値
概要
視聴回数 40,329/総再生時間 72.7時間/登録者 +16(登録者は合計17人)。上位10本はすべてショートで、1,226〜1,387回の間に並んでいた
コンテンツ
視聴回数:ショート 4万(98.3%)・動画 682(1.7%)。新しい視聴者:ショート 7,117・動画 216。登録者:ショート +14・動画 +2。公開済み:ショート 52本・動画 19本
コンテンツ(流入)
ショートフィード 93.9%・YouTube 検索 3.2%・その他の YouTube 機能 1.4%・ブラウジング機能 0.7%・チャンネルページ 0.4%・その他 0.5%
視聴者
月間視聴者数 7,790。新しい視聴者 99.8%・ライト 0.2%・コア 0.1%未満。視聴者の増加につながっている動画は7本ともすべて「低」
視聴者(層)
男性 87.6%・女性 12.4%。25〜34歳 25.6%・35〜44歳 22.9%・45〜54歳 22.3%。日本 99.0%。携帯電話 73.9%・パソコン 13.2%
トレンド
「ユーザーは何を検索しているか」に AI の歴史・ラジコン工作・robot vacuum cleaner。「インスピレーションをもたらす新しい動画」は、テスラのオプティマス・PIVOT のフィジカルAI・中島聡さんのヒューマノイドの回で、10万〜20万回見られていた
チャンネルの動画一覧。どのサムネイルも、白い大きな文字とオレンジの強調、右下のハコブくんという同じ型。視聴回数は0〜18回が多く、412回と114回の2本が目立つ

本編の視聴が少ないことは画面からすぐ分かりました。ただ、画面だけでは、サムネイルが押されていないのか、そもそも表示されていないのかが切り分けられません。そこで、詳細モードから書き出したファイルを読みました。

詳細モードの17個の ZIP を、1本のスクリプトで読んだ

YouTube Studio の詳細モードでは、表ごとに ZIP を書き出せます。中身は 表データ.csv・合計.csv・グラフデータ.csv の3つ(一部は2つ)です。ファイル名が日本語で文字化けして届いたので、どの ZIP がどの表かは、表データ.csv の1行目(見出し)で見分けました。

書き出した表は17個です。視聴者の年齢・視聴者の性別・新しい視聴者とリピーター・視聴行動別の視聴者区分・YouTube サービス・コンテンツ・OS・デバイスのタイプ・チャンネル登録状況・終了画面要素・再生リスト・コンテンツ タイプ・チャンネル登録元・再生場所・地域・投稿・トラフィック ソース。

最初は、表を開いては計算する、を会話の中で何度か繰り返しました。記事にするにあたって、同じ数字が出るように1本のスクリプト(analyze_youtube.py)にまとめ、書き出した ZIP をそのまま読んで出し直しています。コードと出力の全文は、この記事の後ろに置きました。

ショートの4万回は、再生が始まった回数だった(推計で約1万回)

コンテンツ タイプの表には、ショートの視聴回数 39,647、総再生時間 58.3337時間、平均視聴時間 0:00:20 が並んでいます。

視聴回数総再生時間総再生時間÷視聴回数
YouTube が出す平均視聴時間
平均視聴時間で割った回数
ショート39,64758.3337時間5.3秒20秒約10,500回(26%)
本編68214.4034時間76.0秒154秒約337回(49%)

総再生時間を視聴回数で割ると、ショート1回あたり5.3秒です。一方、YouTube が出す平均視聴時間は20秒。この2つが合わないのは、ショートの視聴回数が、再生が始まるたび(ループするたび)に1回と数えられるためと考えています。YouTube は2025年3月から、ショートをこの数え方にしています。平均視聴時間のほうは、ちゃんと見られた回だけで計算されているようなので、総再生時間を平均視聴時間で割ると、ちゃんと見られた回数のおよその数になります。

本編でも割合は49%で、100%にはなりません。この割り算は、YouTube の数え方を外から推し量ったもので、正確な「スワイプされなかった回数」ではありません。目安として使っています。

同じ割り算を、上位10本のショートでもしました。平均視聴時間は、CSV にショートごとの値が入っていなかったので、Studio の概要の画面に出ていた値を書き写しています。

ショート総再生時間÷視聴回数画面の平均視聴時間割合
中国は1日120億円、日本は? 比べる前に確かめたいこと
12.4秒26秒48%
人を18mにしたら、何トン?8.3秒20秒41%
スーパーの冷凍庫にサイバー攻撃、温度が変わったのは本物の機械
5.7秒15秒38%
病院のパイプで血液を速く送ると、壊れる?
4.4秒14秒32%
「1秒でも早く」と頼んだら、ロボットは最速モード?
6.9秒24秒29%
ガンダムは無理、と証明できる?
3.5秒14秒25%
横浜のガンダム、歩けないの?3.6秒16秒23%
赤字89億円、全員ロボットにしたら埋まる? ジャングリア沖縄で勝手に試算
2.5秒13秒19%
人型ロボット、乗っ取れる? 研究者の実験と本物の被害
4.2秒23秒18%
AIのセキュリティ製品、入れる前に何を聞く?
2.4秒13秒18%

いちばん良い回でも48%、半分ほどは2割を切っています。ショートが1本あたり1,200回前後で横並びに止まっていたのは、YouTube が最初に試しで見せた人の多くが、冒頭の1〜2秒で次へ送っていたためだと読めます。ショートの方針は、10月19日に「本編を切り出すのではなく、ショート専用に作る・最初の1秒を動きにする」と決めていて、その判断の材料と同じ向きの数字でした。

日ごとの視聴も見ました。ショートは10月16日に12,170回の山があり、10月25日と26日は204回・241回に落ちています。本編は10月14日・15日の148回・138回が多く、10月20日以降は1日5〜24回でした。本編は、ほぼ毎日新しく出していたのに、1日の視聴は増えていません。

本編21本のサムネイルの表示は、87%が4本に集まっていた

コンテンツの表で、長さが60秒を超えるものを本編として分けました。21本あります(期間中に公開した19本に、3月の開封の動画と、期間の最終日に公開した1本が入っています)。

本編表示クリック率視聴平均で見られた長さ
ジャングリア沖縄の赤字89億円、AIとロボットで埋められるか勝手に試算してみた
2,5474.28%412
57.3秒/628秒(9.1%)
人型ロボットの出荷は4倍。ロボットにも「ChatGPTの瞬間」は来たのか
1,9783.64%114
158.5秒/750秒(21.1%)
セキュリティ人材の不足は、AIとロボットで埋まるのか
1,1640.86%14
137.2秒/751秒(18.3%)
冷凍庫が50度に。スーパーを襲ったサイバー攻撃から、機械の守り方を考える
1,0640.56%15
26.6秒/556秒(4.8%)
残りの17本3〜1520〜14.29%0〜35—

上の4本で表示 6,753回。本編全体 7,789回の86.7%です。残りの17本は、どれも表示が160回以下でした。YouTube は、新しい動画を少数の人に試しに見せ、反応が良ければ広げます。17本は、その試しの段階からほとんど広がっていません。

チャンネル全体の表示は13,058回、クリック率2.76%です。この中にはショートの表示(検索やチャンネルページに出たもの)5,264回も入っているので、本編だけを見るときは7,789回を使いました。

表示されたのに押されなかった2本(セキュリティ人材 0.86%・冷凍庫 0.56%)は、サムネイルとタイトルが選ばれなかった回です。押された回でも、一番伸びたジャングリアの回は平均57秒(約9%)で離れていて、冒頭の1分で引きつけられていませんでした。

配膳ロボットのシリーズ第1回のサムネイル。Unity で建てた店を斜めから写した背景に「何台入れたら 店は変わる? 0〜6台で試算」、右下にハコブくんと「1台だと遅い?」の札

流入は93.9%がショートのフィードで、検索からは3.2%だった

トラフィック ソースの表です。

流入視聴平均視聴時間表示クリック率
ショート フィード37,8500:00:21——
YouTube 検索1,2910:01:025,1013.31%
その他の YouTube 機能5690:00:18——
ブラウジング機能2830:02:191,3204.32%
チャンネル ページ1490:00:171,9982.6%
関連動画1010:03:214,5941.72%
再生リスト70:02:07458.89%

関連動画から来た人は、平均3分21秒と、どの入り口よりも長く見ていました。ただ、関連動画として表示された4,594回に対して、押されたのは1.72%です。タイトルは「〜のか」「〜?」で終わる問いかけが多く、人が実際に検索する言葉(人型ロボット・配膳ロボット・テスラのオプティマスなど)が前に出ていませんでした。

終了画面・再生リスト・投稿は、1回も使われていなかった

表値
終了画面要素表示 22回・クリック 0回
再生リスト再生リストからの視聴 0回
投稿(コミュニティ)インプレッション 0
チャンネル登録元
増加 21・減少 5(差し引き +16)。ショート フィードから +14、動画の再生ページから +2
チャンネル登録状況
未登録の人の視聴 40,173・登録済みの人の視聴 117

本編を見終わった人を、次の動画へ送る仕組みがありませんでした。同じシリーズの動画があっても、つながっていません。

見ていた人の層は、届けたい相手とずれていなかった

視聴者の層は、男性が87.6%、25〜54歳が約7割、日本から99%、携帯電話が73.9%でした。ロボットの導入を考える経営者・PM・開発者という相手に近い層には届いています。足りないのは、本編に来てもらうことのほうで、届け先がずれているわけではない、と判断しました。

チャンネルの方針を「ロボット、入れたらどうなる?を数字で確かめる」に決めた

分析のあと、どんなチャンネルを目指すかを考えてほしい、と頼まれました。

分析はわかりました。今後どのようなコンテンツを作っていくのかを考えてください。どんなチャンネルを目指し、続けていくのかをよく考えて次に活かせたらと思います。

ニュースの解説そのものは、大手のチャンネルのほうが上手に作れます。この YouTube で出せるのは、現場に入れたら実際どうなるかを、試算・シミュレーション・実機で確かめ、運用に耐える落とし所まで見せることです。一番伸びたジャングリアの回も、場所×金額×自分で試算、の形でした。

柱中身役割頻度の目安
① 入れたらどうなる(主軸)
配膳ロボットは何台・病院の搬送・夜のエレベーターなど。試算から Unity のシミュレーションへつなぐシリーズ
導入を考える人に「この人に聞けばいい」と思ってもらう
月2〜3本
② 時事を入り口に
大きなニュースを「現場に入れたら?」で試算する
検索と新しい視聴者を取る月1本
③ 自分で試してみた
AI3社のブロック積み対決、「片付けて」とだけ言う、など
実際に手を動かせる人だと示す月1本

どの柱にも入らない単発の話題(サイバー攻撃・人材不足・株価など)は作りません。本編は28日で19本から週1本にして、浮いた時間をタイトル・サムネイル・冒頭30秒・シリーズのつなぎに使います。ショートは、ハコブくんのマンガで知ってもらう入口の役に限り、登録や相談につなぐ役は本編に任せます。

この方針には、続けて次のように返ってきました。

その方向性で進めてください。少ないけど、目的があり、仕事に関係しそうなユーザーを獲得することを目指せたらと思います(再生数はあればいいというチャンネルではないです)

  • ねらい:再生数ではなく、導入を考える人に本編を見てもらい、相談につなげる
  • 変わったこと:話題を3本の柱に絞り、本編は28日で19本から週1本へ。判断の物差しを再生数からクリック率・平均視聴率・次の回へ進む割合・相談の連絡に替えた
  • 見込める効果:1本ごとのクリック率と冒頭の引きつけが上がり、試しの表示から広がる本編が出てくる(見込み。8本出したところで、柱ごとのクリック率と平均視聴率を、今回の本編の値と比べて確かめる)

動画の決まり(video_rules.md)の冒頭に「C. チャンネルの方針」を足した

決めた方針は、動画の作り方の決まり(video_rules.md)の冒頭に、新しい節として書きました。次に動画のネタ・台本・タイトル・サムネイルを決めるとき、最初にこの節に照らします。この節とほかの節が食い違うときは、この節を正にします。

書く途中で、提案の中身を2か所直しました。アニメのロボットのシリーズ(全6回)は、すでに最終回まで作り終わっていたので、「様子を見て続けるか決める」ではなく「同じような娯楽寄りのシリーズを新しく始めるかは、本人が決める」にしました。配膳ロボットのシリーズは第1回・第2回とも作成済みだったので、「これから作る見本」ではなく、「公開後の数字で型を確かめる回」にしました。

更新は2か所です。Mac の制作ベースの原本(iCloud の 動画/_制作ベース/video_rules.md)を Mac の上で書き換え、同じ内容を claude.ai のプロジェクトの写し(claude/video_rules.md)にも入れました。足した節の全文と、書き換えに使ったスクリプトは後ろに置いています。

配膳ロボットの2本のタイトルを、検索される言葉で短くした

方針の見本にするのは、すでに作ってあった配膳ロボット導入シミュレーションの2本です。調べると、第1回は11月9日 19:30 に公開予約済み(非公開)、第2回はまだ YouTube に上げていませんでした。どちらも公開前なので、タイトルを変えられます。

サムネイルはどちらも問いかけの形(「何台入れたら店は変わる?」「スタッフを1人減らせる?」)です。タイトルには、検索される言葉と、答えのヒントを入れる役を持たせました。案は2本とも3つずつ出し、その中から選びました。

配膳ロボットのシリーズ第2回のサムネイル。Unity の店を真上から写した背景に「配膳ロボットで スタッフを 1人減らせる? 試算した」、右下にハコブくんと「0.5人分?」の札
前のタイトル案決めたタイトル
第1回
配膳ロボット何台で店は変わる? 2台まで変わり、人は減らせなかった【導入シミュレーション 第1回】
A:配膳ロボットは何台いる? ファミレスで試算すると、3台目からはほぼ同じだった/B:配膳ロボット1台だと、料理が遅くなる? ファミレスで0〜6台を試算
B
第2回
配膳ロボットは「0.5人分」? 1人減らせる条件と、月いくら浮くか【導入シミュレーション 第2回】
A:配膳ロボットで人件費は減る? 試算では1人減らせても、月7.5万円の持ち出し/B:配膳ロボットは「0.5人分」? ファミレスで人件費とレンタル費用を試算
B

【導入シミュレーション 第N回】は外しました。スマホの一覧では40字前後で切れるので、最後の部分はほとんど読まれません。シリーズであることは、再生リストとサムネイルの札で示します。2本とも頭を「配膳ロボット」にそろえ、同じシリーズだと分かるようにしました。

第2回は、11月16日(月)19:30 で公開予約してアップロードしました。第1回のちょうど1週間後です。タイトルは、2本とも Studio で決めたものに替わっていることを、YouTube の予約の一覧(Mac で1時間ごとに書き出している youtube_videos.json)で確かめました。

動画ID公開予約長さタイトル(予約の一覧の値)
第1回Ayq0zDZcaWo
2026-11-09T10:30:00Z(日本時間 19:30)
861秒
配膳ロボット1台だと、料理が遅くなる? ファミレスで0〜6台を試算
第2回D3Ey5BTt4o4
2026-11-16T10:30:00Z(日本時間 19:30)
816秒
配膳ロボットは「0.5人分」? ファミレスで人件費とレンタル費用を試算
  • ねらい:試しに表示されたとき、検索される言葉と答えのヒントで押してもらう
  • 変わったこと:約50字の題を約33字に縮め、頭を「配膳ロボット」にそろえ、【第N回】を外した
  • 見込める効果:前の本編のクリック率(表示の多い4本で0.56〜4.28%)より高くなる(見込み。公開から2〜3日のクリック率を Studio で見て確かめる)

2本を、再生リスト・概要欄・終了画面でつないだ

1本見た人が次の回へ進めるように、3つの道を作りました。

再生リスト:Studio で「配膳ロボット導入シミュレーション」という再生リストを作り、第1回と第2回を入れました。説明文は、検索される言葉を入れて次のようにしました。

配膳ロボットは何台入れればいいのか。スタッフを減らせるのか。人件費とレンタル費用、どちらが高いのか。

ファミレスの混む2時間をパソコンの中で再現して、配膳ロボットの導入を試算するシリーズです。試算からはじめて、店の図面をもとにUnityで3Dの店を建て、ロボットを走らせるところまで進めます。

試算はサイトで、店・人数・台数・使い方・費用の前提を変えて試せます。
https://pixelstomotors.com/series8

並び順の既定は「公開日(新しい順)」になっていました。このままだと第2回が先に並ぶので、「公開日(古い順)」に変えてもらいました。再生リストの ID は PLIGdX4hyu-dE です。

YouTube Studio の「動画の追加」の画面。配膳ロボットの2本にチェックが入り、右の「追加する動画」に第1回、第2回の順で並ぶ
再生リスト「配膳ロボット導入シミュレーション」の動画の一覧。第1回は2026/11/09、第2回は2026/11/16 の公開予約
YouTube で再生リストを開いた画面。右上に「配膳ロボット導入シミュレーション 1/2」と2本が並び、下に第1回の新しいタイトルが出ている。右下のおすすめ欄は、ほかのチャンネルの動画なので塗りつぶした

概要欄:2本の概要欄の目次の直前に「▼シリーズ」の欄を足し、第1回・第2回・再生リストへのリンクを置きました。第2回の概要欄では、下のほうにあったシリーズの欄を外して、上に移しています。説明文の頭は検索結果に出るので、タイトルと同じ言葉で始まっているかも確かめました(第1回は「ファミレスで見かける配膳ロボット。」、第2回は「配膳ロボットを入れたら、ホールのスタッフを1人減らせるのか。」)。

第1回の概要欄に足した欄:

▼シリーズ「配膳ロボット導入シミュレーション」
・第1回 配膳ロボット1台だと、料理が遅くなる?(11月9日 公開):この動画
・第2回 配膳ロボットは「0.5人分」? 人件費とレンタル費用(11月16日 公開):https://www.youtube.com/watch?v=D3Ey5BTt4o4
・シリーズの再生リスト:https://www.youtube.com/playlist?list=PLIGdX4hyu-dE

第2回の概要欄に足した欄:

▼シリーズ「配膳ロボット導入シミュレーション」
・第1回 配膳ロボット1台だと、料理が遅くなる?(11月9日 公開):https://www.youtube.com/watch?v=Ayq0zDZcaWo
・第2回 配膳ロボットは「0.5人分」? 人件費とレンタル費用(11月16日 公開):この動画
・シリーズの再生リスト:https://www.youtube.com/playlist?list=PLIGdX4hyu-dE

第2回の概要欄から外した、前の欄:

▼シリーズ「配膳ロボット導入シミュレーション」
・第1回 配膳ロボット何台で店は変わる?(2026年11月9日 公開予定):https://www.youtube.com/watch?v=Ayq0zDZcaWo

書き換えたのは、2本それぞれの 概要欄_下書き.md・概要欄.txt(iCloud の作業フォルダ)と、アップロード用/概要欄.txt(KIOXIA)の3つずつ、タイトル.txt は iCloud と KIOXIA の2つずつです。YouTube への貼り替えは、Studio で手で行いました。

終了画面:予約中(非公開)の動画は、ほかの動画の終了画面に選べません。そこで、2本とも、まず再生リストを置きました。第2回では、エンディングの13:15:01〜13:35:01 の20秒に、再生リストの枠を置いています。上の「相談は概要欄の連絡先から」の札と、下の字幕・ハコブくんにはかかっていません。チャンネル登録のボタンも足しました。

第2回の終了画面の編集画面。13:15:01〜13:35:01 に「再生リスト: 配膳ロボット導入シミュレーション」の枠。上に「非公開動画の動画再生ページでは、終了画面の要素が表示されません」の注意

第1回のエンディングは、ハコブくんが「だから次の回からは、そこを調べていきます。まず、人は減らせるのか、月いくら浮くのか。」と話す場面です。台本(narration.py)の該当の行は次のとおりで、第2回の中身の予告になっています。11月16日に第2回が公開されたら、第1回の終了画面を第2回に差し替えます。

 ("next", "smile", "だから次の回からは、そこを調べていきます。まず、人は減らせるのか、月いくら浮くのか。|そのあと、店の図面から3Dの店を建てて、ロボットを走らせます。実際の店にどこまで合うかは、店での観察とも照らしていきます。", 1.8),
  • ねらい:本編を1本見た人に、同じシリーズの次の回を見てもらう
  • 変わったこと:終了画面のクリック0回・再生リストからの視聴0回の状態から、再生リスト・概要欄・終了画面の3つで次の回へ行けるようにした
  • 見込める効果:シリーズの次の回へ進む人が出てくる(見込み。11月16日以降、終了画面のクリック率と、再生リストからの視聴を Studio で見て確かめる)

X の予約投稿が、新しいタイトルでも動画と結びつくように直した

本編の X の投稿は、YouTube の公開予約を読んで、公開の時刻に自動で出す仕組みにしています(r2r2r-content の tools/sync_youtube_shorts.py)。この仕組みは、投稿の json(sns/VIDEO_*_sns_posts.json)の youtube_title か title_match の語で、YouTube の動画と結びつけます。タイトルを変えると、第1回の title_match(「配膳ロボット」「何台」)が新しいタイトルに入らなくなり、結びつかなくなります。

スクリプトを読むと、結びつかないときは何もせずに飛ばすだけで、すでに入っている予約は消えません。それでも、第1回は title_match を「配膳ロボット」だけにしました。長さ(860秒と3秒以内)と合わせて結びつくので、タイトルが前のままでも新しくても当たります。第2回は「0.5人分」が新しいタイトルにも入っているので、youtube_title だけを替えました。

残っている作業

日付作業担当
10/28以降
第2回の終了画面に「ロボット導入、本当はいくらかかる?」(10/28 公開・費用の話の続き)を足す
本人(Studio)
11/9以降
第2回の終了画面に第1回を足す
本人(Studio)
11/16
第1回の終了画面を第2回に差し替える。第1回に固定コメント「続き:1人減らせる?月いくら浮く?→ https://youtu.be/D3Ey5BTt4o4 」を付ける
本人(Studio)
公開から2〜3日後
2本のクリック率と、30秒時点の視聴者維持率を見て、前の本編と比べる
本人と Claude

コード:書き出した ZIP を読むスクリプト analyze_youtube.py

01_sec01.py.txt4,595字・140行・python
"""YouTube Studio の「詳細モード」から書き出した ZIP(2026-09-29〜2026-10-27)を読み、
チャンネルの見直しに使った数字を出す。

使い方:
  python3 analyze_youtube.py <ZIP を置いたフォルダ>

ZIP の中身は 表データ.csv・合計.csv・グラフデータ.csv。どの ZIP がどの表かは、
表データ.csv の1行目(見出し)で見分ける。
別のタブで開く保存

出力:analyze_youtube.py の出力

02_sec01.txt11,193字・180行・text
読んだ表: 視聴者の年齢, 新しい視聴者とリピーター, 視聴行動別の視聴者区分, YouTube サービス, コンテンツ, OS, デバイスのタイプ, チャンネル登録状況, 終了画面要素, 再生リスト, コンテンツ タイプ, チャンネル登録元, 再生場所, 地域, 投稿, トラフィック ソース, 視聴者の性別

## 1. コンテンツタイプ別(視聴回数・総再生時間・YouTube が出す平均視聴時間)
  ['合計', '40329', '72.7371', '0:00:25']
  ['YouTube ショート', '39647', '58.3337', '0:00:20']
  ['動画', '682', '14.4034', '0:02:34']
  YouTube ショート: 総再生時間÷視聴回数 = 5.3秒 / YouTube の平均視聴時間 = 20秒 → 平均視聴時間で割った回数 ≒ 10,500 回(視聴回数 39,647 の 26%)
  動画: 総再生時間÷視聴回数 = 76.0秒 / YouTube の平均視聴時間 = 154秒 → 平均視聴時間で割った回数 ≒ 337 回(視聴回数 682 の 49%)
別のタブで開く保存

データ:書き出した ZIP 17個の CSV の全文

03_sec01.txt61,897字・2,307行・text
===== OS / グラフデータ.csv =====
日付,OS,視聴回数
2026-09-29,Windows,0
2026-09-30,Windows,0
2026-10-01,Windows,0
2026-10-02,Windows,0
2026-10-03,Windows,0
2026-10-04,Windows,0
別のタブで開く保存

コード:video_rules.md に「C. チャンネルの方針」を足したスクリプト(Mac の上で実行)

04_sec01.sh.txt3,077字・71行・bash
cd "$HOME/mnt/PixelstoMotors/デジタルツイン学習R2R2R/動画/_制作ベース" && cp video_rules.md "$HOME/video_rules_before_20261027.md" && python3 - <<'EOF'
p='video_rules.md'
s=open(p,encoding='utf-8').read()
sec='''## C. チャンネルの方針(2026-10-27 エイイチと決めた・ほかの節より先に読む)

動画のネタ・台本・タイトル・サムネイルを決める前に、この節に照らす。この節とほかの節が食い違うときは、この節を正にする。

### 目指す姿
別のタブで開く保存

コード:2本のタイトル.txt と概要欄に「▼シリーズ」を足したスクリプト(Mac の上で実行)

cd "$HOME/mnt/PixelstoMotors/デジタルツイン学習R2R2R/動画" && K="$HOME/mnt/KIOXIA/r2r2r-data/videos" && python3 - "$K" <<'EOF'
import sys,re,os
K=sys.argv[1]
T={"何台入れたら店は変わる":"配膳ロボット1台だと、料理が遅くなる? ファミレスで0〜6台を試算",
   "配膳ロボットで1人減らせるか":"配膳ロボットは「0.5人分」? ファミレスで人件費とレンタル費用を試算"}
U1="https://www.youtube.com/watch?v=Ayq0zDZcaWo"; U2="https://www.youtube.com/watch?v=D3Ey5BTt4o4"
PL="(再生リストのURL:作成後に入れる)"
def block(me):
    a="・第1回 配膳ロボット1台だと、料理が遅くなる?(11月9日 公開)"+(":この動画" if me==1 else ":"+U1)
    b="・第2回 配膳ロボットは「0.5人分」? 人件費とレンタル費用(11月16日 公開)"+(":この動画" if me==2 else ":"+U2)
    return "▼シリーズ「配膳ロボット導入シミュレーション」\n"+a+"\n"+b+"\n・シリーズの再生リスト:"+PL+"\n\n"
for i,(d,t) in enumerate(T.items(),1):
    for p in [f"{d}/タイトル.txt", f"{K}/{d}/アップロード用/タイトル.txt"]:
        open(p,"w",encoding="utf-8").write(t+"\n")
    for p in [f"{d}/概要欄_下書き.md", f"{d}/概要欄.txt", f"{K}/{d}/アップロード用/概要欄.txt"]:
        s=open(p,encoding="utf-8").read()
        s=re.sub(r"▼シリーズ「配膳ロボット導入シミュレーション」\n(?:・.*\n)+\n?","",s)
        assert s.count("\n▼目次")==1, p
        s=s.replace("\n▼目次","\n"+block(i)+"▼目次",1)
        open(p,"w",encoding="utf-8").write(s)
        print("ok",p)
EOF

コード:概要欄に再生リストの URL を入れたスクリプト(Mac の上で実行)

cd "$HOME/mnt/PixelstoMotors/デジタルツイン学習R2R2R/動画" && K="$HOME/mnt/KIOXIA/r2r2r-data/videos" && for d in 何台入れたら店は変わる 配膳ロボットで1人減らせるか; do for p in "$d/概要欄_下書き.md" "$d/概要欄.txt" "$K/$d/アップロード用/概要欄.txt"; do python3 - "$p" <<'EOF'
import sys;p=sys.argv[1];s=open(p,encoding='utf-8').read()
old="(再生リストのURL:作成後に入れる)";assert s.count(old)==1,p
open(p,'w',encoding='utf-8').write(s.replace(old,"https://www.youtube.com/playlist?list=PLIGdX4hyu-dE"));print("ok",p)
EOF
done; done

コード:X の投稿の json のタイトルと結びつけの語を替えたスクリプト

# 1回目: 2本の youtube_title と title_match を替えた
cd /home/claude/r2r2r-content && python3 - <<'EOF'
import json
T1="配膳ロボット1台だと、料理が遅くなる? ファミレスで0〜6台を試算"
T2="配膳ロボットは「0.5人分」? ファミレスで人件費とレンタル費用を試算"
for f,t,m in [("sns/VIDEO_serving-robots-how-many_sns_posts.json",T1,["配膳ロボット","料理が遅く"]),("sns/VIDEO_serving-robots-one-less_sns_posts.json",T2,["配膳ロボット","0.5人分"])]:
    d=json.load(open(f,encoding='utf-8')); d["meta"]["youtube_title"]=t; d["meta"]["title_match"]=m
    open(f,'w',encoding='utf-8').write(json.dumps(d,ensure_ascii=False,indent=2)+"\n")
EOF

# 2回目: 第1回の title_match を「配膳ロボット」だけにした(タイトルが前でも新しくても、長さと合わせて結びつく)
cd /home/claude/r2r2r-content && python3 - <<'EOF'
import json
f="sns/VIDEO_serving-robots-how-many_sns_posts.json"
d=json.load(open(f,encoding='utf-8')); d["meta"]["title_match"]=["配膳ロボット"]
open(f,'w',encoding='utf-8').write(json.dumps(d,ensure_ascii=False,indent=2)+"\n")
EOF
git add sns/VIDEO_serving-robots-how-many_sns_posts.json sns/VIDEO_serving-robots-one-less_sns_posts.json
git commit -m "配膳ロボット第1回・第2回のYouTubeタイトル変更に合わせて結びつけを更新"
git fetch origin main && git rebase origin/main && git push origin HEAD:main

差分:r2r2r-content の commit 34c6ec5

commit 34c6ec534aba50efb63a4f8d049d378696e9d31f
配膳ロボット第1回・第2回のYouTubeタイトル変更に合わせて結びつけを更新


 sns/VIDEO_serving-robots-how-many_sns_posts.json | 5 ++---
 sns/VIDEO_serving-robots-one-less_sns_posts.json | 4 ++--
 2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/sns/VIDEO_serving-robots-how-many_sns_posts.json b/sns/VIDEO_serving-robots-how-many_sns_posts.json
index ad610f1..4bcb18b 100644
--- a/sns/VIDEO_serving-robots-how-many_sns_posts.json
+++ b/sns/VIDEO_serving-robots-how-many_sns_posts.json
@@ -2,10 +2,9 @@
   "meta": {
     "kind": "youtube_video",
     "title": "何台入れたら店は変わる(配膳ロボット導入シミュレーション 第1回)",
-    "youtube_title": "配膳ロボット何台で店は変わる? 2台まで変わり、人は減らせなかった【導入シミュレーション 第1回】",
+    "youtube_title": "配膳ロボット1台だと、料理が遅くなる? ファミレスで0〜6台を試算",
     "title_match": [
-      "配膳ロボット",
-      "何台"
+      "配膳ロボット"
     ],
     "seconds": 860,
     "url": "https://youtu.be/Ayq0zDZcaWo",
diff --git a/sns/VIDEO_serving-robots-one-less_sns_posts.json b/sns/VIDEO_serving-robots-one-less_sns_posts.json
index 8c90217..c1c460a 100644
--- a/sns/VIDEO_serving-robots-one-less_sns_posts.json
+++ b/sns/VIDEO_serving-robots-one-less_sns_posts.json
@@ -2,7 +2,7 @@
   "meta": {
     "kind": "youtube_video",
     "title": "配膳ロボットで1人減らせるか(配膳ロボット導入シミュレーション 第2回)",
-    "youtube_title": "配膳ロボットは「0.5人分」? 1人減らせる条件と、月いくら浮くか【導入シミュレーション 第2回】",
+    "youtube_title": "配膳ロボットは「0.5人分」? ファミレスで人件費とレンタル費用を試算",
     "title_match": [
       "配膳ロボット",
       "0.5人分"
@@ -15,4 +15,4 @@
     "x_template": "配膳ロボットで、ホールを1人減らせる?\n\nファミレスの混む2時間を試算したら、減らせたのは食事中に皿を集めて回る使い方で3台から。でも借りると、浮く人件費より月7.5万円高い…\n浮かない結果も、ちゃんと見せたいね。\n#配膳ロボット #飲食店\n{url}"
   },
   "note": "YouTube の本編の X 投稿。url と posts.x は tools/sync_youtube_shorts.py が YouTube の公開予約を見て入れる。LinkedIn は動画を直接アップロードする決まりなので入れない(文は iCloud の 動画/配膳ロボットで1人減らせるか/投稿文_X_LinkedIn.txt)"
-}
\ No newline at end of file
+}