# [メタ情報] # 識別子: dynamicおよびdynamic2埋め込みコード生成 # システム名: 未分類 # 技術種別: Misc # 機能名: Misc # 使用言語: カスタムhtml # 状態: 実行用 # [/メタ情報] 要約: このテキストは、動画埋め込みプレイヤーとその高度な字幕制御機能を提供するHTML/CSS/JavaScriptコードと、それに付随するWordPress用PHPテンプレート(`dr52emd.php`)で構成される。主要機能は、動画埋め込み、低画質/枠外字幕へのリンク、字幕表示の最適化である。 字幕機能は特に詳細で、動画の通常再生時はカスタムオーバーレイ字幕を、フルスクリーンやピクチャーインピクチャー(PiP)時はネイティブ字幕を自動で切り替え、二重表示を防ぐ。また、動画の再生時間に応じて字幕一覧の該当箇所をリアルタイムでハイライトし、自動スクロールさせることで、ユーザーは字幕をクリックして動画の特定シーンにジャンプできる。画面遷移時には再生中の動画を自動停止する機能も持つ。 PHPテンプレート `dr52emd.php` は、指定された動画IDに基づき、外部JSONから動画ソース、ポスター、字幕ファイル、説明文などの情報を取得し、これらを動的にHTMLに組み込む役割を果たす。 「dynamic」と「dynamic2」の二つの埋め込みコードが存在し、「dynamic」は動画ダウンロードボタンと自動セットアップ機能を提供する一方、「dynamic2」はダウンロードボタンを排除し、右クリック禁止など動画の保護機能を強化している。これら全体で、ユーザーの視聴体験を向上させつつ、コンテンツの保護を図ることを目的としている。 dynamic ```
[dynamic_external_html url="https://XXXXXX.com/dr52emd/?drid=@@VIDEOID@@&frag=1"]
``` { "VIDEOID":"3", "eeee": "25", "aaa": "6", "bbb": "8", "ccc": "10", "ddd": "12" } dr52emd.php ``` $timeout, 'headers'=>['Cache-Control'=>'no-cache']]); if (is_wp_error($res)) return null; if (wp_remote_retrieve_response_code($res) !== 200) return null; return wp_remote_retrieve_body($res); } function dr52emd_find_by_videoid(array $rows, string $vid): ?array { foreach ($rows as $r) if (is_array($r) && (string)($r['videoid'] ?? '') === $vid) return $r; return null; } /* ========= 本体 ========= */ $drid = dr52emd_get_drid(); $as_fragment = isset($_GET['frag']) || isset($_GET['embed']); // 埋め込みはヘッダ/フッタ無し if (!$as_fragment) get_header(); if (!$drid) { echo $as_fragment ? '

drid が未指定です。

' : '

動画ID(drid)が指定されていません。

'; if (!$as_fragment) get_footer(); exit; } $json_url = 'https://XXXXXX.com/gd_proxy/?f=videoct.json'; $json_text = dr52emd_http_get($json_url); if (!$json_text) { echo $as_fragment ? '

動画情報の取得に失敗しました。

' : '

動画情報の取得に失敗しました。

'; if (!$as_fragment) get_footer(); exit; } $data = json_decode($json_text, true); if (!is_array($data)) { echo $as_fragment ? '

動画情報が不正です。

' : '

動画情報が不正です。

'; if (!$as_fragment) get_footer(); exit; } $info = dr52emd_find_by_videoid($data, $drid); if (!$info) { $msg = '

指定の動画が見つかりません: '.esc_html($drid).'

'; echo $as_fragment ? $msg : '
'.$msg.'
'; if (!$as_fragment) get_footer(); exit; } $poster = (string)($info['image'] ?? ''); $track = (string)($info['subtitle'] ?? ''); $listurl = (string)($info['subtitle_list'] ?? ''); $explain = (string)($info['explain_line'] ?? ''); $src = !empty($info['video']) ? (string)$info['video'] : ('https://XXXXXX.com/rd.php?id=' . rawurlencode($drid)); if (!$as_fragment) echo '
'; ?>
を内包) if ($listurl) echo do_shortcode('[dynamic_external_html url="' . esc_url($listurl) . '"]'); // ▼ 説明文(TXT/HTMLどちらでもOK) if ($explain) { $body = dr52emd_http_get($explain); if (is_string($body) && trim($body) !== '') { $trimmed = trim($body); if (stripos($trimmed, '<') !== false) { echo '
' . wp_kses($trimmed, ['br'=>[], 'p'=>[], 'strong'=>[], 'em'=>[], 'b'=>[], 'i'=>[], 'span'=>['style'=>[]]]) . '
'; } else { echo '

' . nl2br(esc_html($trimmed)) . '

'; } } } ?>
'; if (!$as_fragment) get_footer(); dynamic2用埋め込みコード ```
[dynamic_external_html url="https://XXXXXX.com/dr52emd/?drid=@@VIDEOID@@&frag=1"]
``` 対応条件 { "VIDEOID":"3", "eeee": "25", "aaa": "6", "bbb": "8", "ccc": "10", "ddd": "12" }