/** * 構造化データ (Schema.org) ビルダーヘルパー * * 動画データから VideoObject の連想配列を組み立てる共通処理。 * チャンネルトップ (channel-popular-list / channel-latest-list) と * 一覧ページ (channel-popular-videos / channel-videos) の両方で同一仕様を使う。 */ if ( ! function_exists( 'build_schema_video_object' ) ) { /** * 動画データ配列から Schema.org VideoObject 形式の連想配列を生成する。 * * @param array $video get_video_data() / get_channel_cache_data() で取得した動画データ * @param string $channel_id 親チャンネル ID (URL 組み立て用) * * @return array|null video_id が空なら null */ function build_schema_video_object( $video, $channel_id ) { if ( empty( $video['video_id'] ) ) { return null; } $desc_parts = array(); $desc_parts[] = '再生回数' . number_format( $video['video_view'] ) . '回'; $desc_parts[] = 'いいね' . number_format( $video['video_like'] ) . '件'; $desc_parts[] = 'コメント' . number_format( $video['video_comment'] ) . '件'; if ( ! empty( $video['video_published_at'] ) ) { $desc_parts[] = '投稿日' . date( 'Y/m/d', $video['video_published_at'] ); } // Duration: 6-digit HHMMSS → ISO 8601 $iso_duration = ''; if ( ! empty( $video['video_duration'] ) ) { $dur = sprintf( '%06d', $video['video_duration'] ); $h = (int) substr( $dur, 0, 2 ); $m = (int) substr( $dur, 2, 2 ); $s = (int) substr( $dur, 4, 2 ); $iso_duration = 'PT'; if ( $h > 0 ) { $iso_duration .= $h . 'H'; } if ( $m > 0 ) { $iso_duration .= $m . 'M'; } $iso_duration .= $s . 'S'; } $item_data = array( '@type' => 'VideoObject', 'name' => $video['video_title'], 'url' => 'https://digitalcreators.jp/channel/' . $channel_id . '/videos/' . $video['video_id'] . '/', 'thumbnailUrl' => 'https://img.youtube.com/vi/' . $video['video_id'] . '/maxresdefault.jpg', 'embedUrl' => 'https://www.youtube.com/embed/' . $video['video_id'], 'description' => implode( '、', $desc_parts ), 'interactionStatistic' => array( array( '@type' => 'InteractionCounter', 'interactionType' => array( '@type' => 'WatchAction' ), 'userInteractionCount' => (int) $video['video_view'], ), array( '@type' => 'InteractionCounter', 'interactionType' => array( '@type' => 'LikeAction' ), 'userInteractionCount' => (int) $video['video_like'], ), array( '@type' => 'InteractionCounter', 'interactionType' => array( '@type' => 'CommentAction' ), 'userInteractionCount' => (int) $video['video_comment'], ), ), ); if ( ! empty( $iso_duration ) ) { $item_data['duration'] = $iso_duration; } if ( ! empty( $video['video_published_at'] ) ) { $item_data['uploadDate'] = date( "Y-m-d\TH:i:s+09:00", (int) $video['video_published_at'] ); } return $item_data; } } if ( ! function_exists( 'build_channel_additional_properties' ) ) { /** * チャンネルの統計値を Schema.org additionalProperty (PropertyValue の配列) として生成する。 * チャンネルランキング(カルーセルの各ListItem)とチャンネルページ(ProfilePage の mainEntity)で共用。 * * @param array $c チャンネルデータ連想配列。channel_ranking.JP の行 / get_channel_data() の結果。 * 必要列: channel_difference_user, channel_difference_view, channel_video_view, * channel_user, channel_newest_avg_view_count, channel_newest_avg_good, * channel_newest_avg_comment, channel_newest_per_engagement。 * * @return array PropertyValue 連想配列のリスト(該当データが無い項目はスキップ)。 */ function build_channel_additional_properties( $c ) { // label => array( 列名, 値の型 )。値は表示中の項目に対応。 $map = array( '30-Day Subscriber Growth' => array( 'channel_difference_user', 'int' ), '30-Day View Count Growth' => array( 'channel_difference_view', 'int' ), 'Lifetime Channel Views' => array( 'channel_video_view', 'int' ), 'Total Channel Subscribers' => array( 'channel_user', 'int' ), 'Average Views Per Video' => array( 'channel_newest_avg_view_count', 'round' ), 'Average Likes Per Video' => array( 'channel_newest_avg_good', 'round' ), 'Average Comments Per Video' => array( 'channel_newest_avg_comment', 'round' ), 'Channel Engagement Rate' => array( 'channel_newest_per_engagement', 'rate' ), ); $props = array(); foreach ( $map as $label => $def ) { list( $col, $type ) = $def; if ( ! isset( $c[ $col ] ) || $c[ $col ] === '' || $c[ $col ] === null ) { continue; } $raw = $c[ $col ]; if ( $type === 'rate' ) { // engagement率: 保存値は比率(0.0615)なので %(6.15) に変換し unitText を付与。 $props[] = array( '@type' => 'PropertyValue', 'name' => $label, 'value' => round( (float) $raw * 100, 2 ), 'unitText' => 'PERCENT', ); continue; } $value = ( $type === 'round' ) ? (int) round( (float) $raw ) : (int) $raw; $props[] = array( '@type' => 'PropertyValue', 'name' => $label, 'value' => $value, ); } return $props; } } 「今まで一番態度が悪かったYouTuberは〇〇?!」カノックスターとマナー講師平林の一年ぶりのコラボにファン歓喜 | YouTuberトレンド分析メディア:デジタルクリエイターズ

「今まで一番態度が悪かったYouTuberは〇〇?!」カノックスターとマナー講師平林の一年ぶりのコラボにファン歓喜

By terada / 2024/02/29

YouTuber『かの/カノックスター』がマナー講師である『平林都』と一年ぶりにコラボした動画が公開された。

「何なのその食べ方は?!」

今回の動画の企画は一切れ5000円するステーキを四枚準備して食べながら平林にかのが質問をしていく内容となっている。前回のコラボは一年前となっていて、一年ぶりのコラボに視聴者も喜んでいる様子だ。

マナー講師ということもあって、動画内でかのは平林にわざと汚い食べ方を見せる。すかさず平林は「なんなのその食べ方は?!」と叱責。「やめてこんなに美味しいものを食べている時に」と怒っている様子を見せてはいるが、「男前なのに」と平林がフォローも加え、終始和やかな動画になっている。

今ままでコラボした中で一番マナーがなっていなかったYouTuberは?

動画内でかのは平林に視聴者から募集した質問を聞いていく。「経験人数は?」「性癖は何?」など攻めた質問を聞くかの。また、「今までコラボした中で一番マナーがなっていなかったYouTuberhは?」という質問に対して平林はまず「誰一人としてマナーができている方はいらっしゃらなかった」と話す。その中でも一番行儀が悪かった人間については「その方は非常に不機嫌なのに、視聴率が良い方」と答えた。一年間で65回YouTubeの撮影をしたという平林。名前を挙げられた人は特にわがまままでマナーを守らなかったようだ。

このコラボを通してコメント欄では

平林先生、なんだかんだかの君の事が大好きなのが伝わる

結局、このコラボ1番好きそして、なんだかんだ仲良いなw

久しぶりすぎるやっぱ平林先生とのコラボが1番好き

との温かいコメントが集まっている。

他『かの/カノックスター』の記事はこちら

新着記事

週間ゲーム実況・配信人気動画再生数ランキングを発表!キヨ、12分間をループし続けるサスペンスゲームに発狂!ヒカキン、恋路を邪魔するマスオTVの所業に台パン!渋谷ハル、VTuber最協決定戦開催で大熱狂!
週間ゲーム実況・配信人気動画再生数ランキングを発表!キヨ、12分間をループし続けるサスペンスゲームに発狂!ヒカキン、恋路を邪魔するマスオTVの所業に台パン!渋谷ハル、VTuber最協決定戦開催で大熱狂!
人気動画2026/06/25
週間音楽人気動画ランキングを発表!『MUSIC AWARDS JAPAN / CEIPA』が1位にランクイン!米津玄師の「IRIS OUT」、「烏」が共に注目を集める!『M!LK』のユニット曲も3位にランクイン!
週間音楽人気動画ランキングを発表!『MUSIC AWARDS JAPAN / CEIPA』が1位にランクイン!米津玄師の「IRIS OUT」、「烏」が共に注目を集める!『M!LK』のユニット曲も3位にランクイン!
2026/06/25
週間マルチYouTuber動画再生数ランキングを発表!『東海オンエア』りょうが「ポケモンのタイプ相性」クイズに挑戦!メンバーがコントでヒントを出す!「仲良しグループ」vs「険悪なギスギスグループ」も!『平成フラミンゴ』、視聴者が言われた「最低な一言」を成敗!
週間マルチYouTuber動画再生数ランキングを発表!『東海オンエア』りょうが「ポケモンのタイプ相性」クイズに挑戦!メンバーがコントでヒントを出す!「仲良しグループ」vs「険悪なギスギスグループ」も!『平成フラミンゴ』、視聴者が言われた「最低な一言」を成敗!
人気動画2026/06/24
週間人気動画再生数総合ランキングを発表!「呪術廻戦 死滅回遊 後編」、「チェンソーマン 刺客篇」のティザーPVがそれぞれ公開!「FIFAワールドカップ2026」の「日本vsオランダ戦」のリキャップ映像も!
週間人気動画再生数総合ランキングを発表!「呪術廻戦 死滅回遊 後編」、「チェンソーマン 刺客篇」のティザーPVがそれぞれ公開!「FIFAワールドカップ2026」の「日本vsオランダ戦」のリキャップ映像も!
人気動画2026/06/23
週間芸能人人気動画ランキングを発表!よにのちゃんねる、TravisJapan松倉海斗が英語で注文!脱出ゲームで二宮和也・山田涼介と大絶叫!仲里依紗、田中みな実とUberEatsパーティーで意外な一面も!
週間芸能人人気動画ランキングを発表!よにのちゃんねる、TravisJapan松倉海斗が英語で注文!脱出ゲームで二宮和也・山田涼介と大絶叫!仲里依紗、田中みな実とUberEatsパーティーで意外な一面も!
2026/06/21
週間ゲーム実況・配信人気動画ランキングを発表!キヨ、トモダチコレクションできよちんの恋が動き出す!ヒカキン、ツマキン&ミニキンが新住民として登場!すずかさん、ピザの中心を目指してまったり配信!
週間ゲーム実況・配信人気動画ランキングを発表!キヨ、トモダチコレクションできよちんの恋が動き出す!ヒカキン、ツマキン&ミニキンが新住民として登場!すずかさん、ピザの中心を目指してまったり配信!
2026/06/21
週間音楽人気動画ランキングを発表! FRUITS ZIPPER、新曲「ぱわーオブらぶ」MV公開‼全国にふるっぱーを届ける‼THE FIRST TAKE、JI BLUE登場で、サッカー日本代表テーマソング披露‼轟はじめ、新曲「Deep Dive」MV公開‼
週間音楽人気動画ランキングを発表! FRUITS ZIPPER、新曲「ぱわーオブらぶ」MV公開‼全国にふるっぱーを届ける‼THE FIRST TAKE、JI BLUE登場で、サッカー日本代表テーマソング披露‼轟はじめ、新曲「Deep Dive」MV公開‼
カテゴリ別人気動画人気動画2026/06/19
週間マルチYouTuber人気動画ランキングを発表! 東海オンエア、週間TOP3独占‼圧倒的人気が止まらない‼ソロキャンプで、しばゆー節多発⁉ドーピング弁論対決で、洗脳と喧嘩⁉
週間マルチYouTuber人気動画ランキングを発表! 東海オンエア、週間TOP3独占‼圧倒的人気が止まらない‼ソロキャンプで、しばゆー節多発⁉ドーピング弁論対決で、洗脳と喧嘩⁉
カテゴリ別人気動画人気動画2026/06/19
週間総合動画再生回数ランキングを発表! Nintendo Direct配信‼リズム天国やゼノブレイド、ゼルダの伝説、新情報発表‼FRUITS ZIPPER、新曲「ぱわーオブらぶ」MV公開‼全国にふるっぱーを届ける‼THE FIRST TAKE、JI BLUE登場で、サッカー日本代表テーマソング披露‼
週間総合動画再生回数ランキングを発表! Nintendo Direct配信‼リズム天国やゼノブレイド、ゼルダの伝説、新情報発表‼FRUITS ZIPPER、新曲「ぱわーオブらぶ」MV公開‼全国にふるっぱーを届ける‼THE FIRST TAKE、JI BLUE登場で、サッカー日本代表テーマソング披露‼
カテゴリ別人気動画人気動画2026/06/17
週間ゲーム動画ランキングを発表!HikakinGames、ついに親分がトモコレ実況!『キヨ。』新感覚のホラーアドベンチャーを実況プレイ!第3位の『すずかさんのびよびよマックス』は、無限に続くピザ「インフィニティピザ」を配信!
週間ゲーム動画ランキングを発表!HikakinGames、ついに親分がトモコレ実況!『キヨ。』新感覚のホラーアドベンチャーを実況プレイ!第3位の『すずかさんのびよびよマックス』は、無限に続くピザ「インフィニティピザ」を配信!
カテゴリ別人気動画人気動画2026/06/11
週間音楽動画ランキングを発表!SUPER BEAVERの新曲「クライマックス」が公開!新体制iLiFE!【あいらいふ】のお披露目動画も配信!STELLAR IDOL PROJECTの1周年を記念したオリジナルMVも!
週間音楽動画ランキングを発表!SUPER BEAVERの新曲「クライマックス」が公開!新体制iLiFE!【あいらいふ】のお披露目動画も配信!STELLAR IDOL PROJECTの1周年を記念したオリジナルMVも!
カテゴリ別人気動画人気動画2026/06/11
週間マルチYouTuber動画ランキングを発表!うじとうえだ、新潟で新旅行企画!夜遊びにいくら使える?東海オンエア虫眼鏡がミスド50個を大食い!?伝説の手作りイカダで川下りも!
週間マルチYouTuber動画ランキングを発表!うじとうえだ、新潟で新旅行企画!夜遊びにいくら使える?東海オンエア虫眼鏡がミスド50個を大食い!?伝説の手作りイカダで川下りも!
カテゴリ別人気動画人気動画2026/06/11

タグ一覧