YouTubeを再生数で追うのをやめた ― 次は導入を考える人に届ける
この記事の素材(コード・ログ・データ 4ファイル・まとめてダウンロードあり)arrow_downwardYouTube のチャンネルで、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枚(概要・コンテンツ・視聴者・トレンド・チャンネルの動画一覧)を読みました。



| 画面 | 読んだ値 |
|---|---|
| 概要 | 視聴回数 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万回見られていた |

本編の視聴が少ないことは画面からすぐ分かりました。ただ、画面だけでは、サムネイルが押されていないのか、そもそも表示されていないのかが切り分けられません。そこで、詳細モードから書き出したファイルを読みました。
詳細モードの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,647 | 58.3337時間 | 5.3秒 | 20秒 | 約10,500回(26%) |
| 本編 | 682 | 14.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,547 | 4.28% | 412 | 57.3秒/628秒(9.1%) |
人型ロボットの出荷は4倍。ロボットにも「ChatGPTの瞬間」は来たのか | 1,978 | 3.64% | 114 | 158.5秒/750秒(21.1%) |
セキュリティ人材の不足は、AIとロボットで埋まるのか | 1,164 | 0.86% | 14 | 137.2秒/751秒(18.3%) |
冷凍庫が50度に。スーパーを襲ったサイバー攻撃から、機械の守り方を考える | 1,064 | 0.56% | 15 | 26.6秒/556秒(4.8%) |
| 残りの17本 | 3〜152 | 0〜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分で引きつけられていませんでした。

流入は93.9%がショートのフィードで、検索からは3.2%だった
トラフィック ソースの表です。
| 流入 | 視聴 | 平均視聴時間 | 表示 | クリック率 |
|---|---|---|---|---|
| ショート フィード | 37,850 | 0:00:21 | — | — |
| YouTube 検索 | 1,291 | 0:01:02 | 5,101 | 3.31% |
| その他の YouTube 機能 | 569 | 0:00:18 | — | — |
| ブラウジング機能 | 283 | 0:02:19 | 1,320 | 4.32% |
| チャンネル ページ | 149 | 0:00:17 | 1,998 | 2.6% |
| 関連動画 | 101 | 0:03:21 | 4,594 | 1.72% |
| 再生リスト | 7 | 0:02:07 | 45 | 8.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つずつ出し、その中から選びました。

| 前のタイトル | 案 | 決めたタイトル | |
|---|---|---|---|
| 第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 です。



概要欄: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秒に、再生リストの枠を置いています。上の「相談は概要欄の連絡先から」の札と、下の字幕・ハコブくんにはかかっていません。チャンネル登録のボタンも足しました。

第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
"""YouTube Studio の「詳細モード」から書き出した ZIP(2026-09-29〜2026-10-27)を読み、
チャンネルの見直しに使った数字を出す。
使い方:
python3 analyze_youtube.py <ZIP を置いたフォルダ>
ZIP の中身は 表データ.csv・合計.csv・グラフデータ.csv。どの ZIP がどの表かは、
表データ.csv の1行目(見出し)で見分ける。出力:analyze_youtube.py の出力
読んだ表: 視聴者の年齢, 新しい視聴者とリピーター, 視聴行動別の視聴者区分, 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 の全文
===== 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 の上で実行)
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
+}