youtube.html を更新
1.2.0公開。 * プロトコル`https`のみの対応から`http`、プロトコルなしのすべてに対応。 * 動画ID以外の引数追加時の不正URLバグの解消。 * もしそれタイムなどの引数を追加した場合に機能するなら変更して公開します。
このコミットが含まれているのは:
コミット
316a9af37d
31
youtube.html
31
youtube.html
@ -1,45 +1,38 @@
|
||||
<!--version : 1.1.2-->
|
||||
<!--Version:1.2.0-->
|
||||
<!DOCTYPE html>
|
||||
<html lang="ja">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title id="mytitle">ホーム</title>
|
||||
<link type="image/png" href="//ssl.gstatic.com/classroom/favicon.png" rel="icon">
|
||||
<title id="mytitle">home</title>
|
||||
</head>
|
||||
<body>
|
||||
<iframe id="myframe"frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
|
||||
<iframe id="myframe" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
|
||||
<script>
|
||||
var link = prompt("YouTubeのリンクを入力してください。\n ちなみに、著作権で保護された動画は再生できないっぽいです。");
|
||||
var link = prompt("YouTubeのリンクを入力してください。\nちなみに、なんらかnなにかにより再生できない場合もあるっぽいです。");
|
||||
var frame = document.getElementById("myframe");
|
||||
var title = document.getElementById("mytitle");
|
||||
// youtube.com/shorts/**のURLにも対応するように、正規表現のパターンを変更
|
||||
var youtubePattern = /^(https:\/\/youtu\.be\/|https:\/\/(www\.)?youtube\.com\/(watch\?v=|shorts\/))([\wA-Z-]+)$/;
|
||||
// 多分すべてのURLに対応する正規表現パターン
|
||||
var youtubePattern = /^(https?:\/\/)?(youtu\.be\/|(www\.)?youtube\.com\/(watch\?v=|shorts\/))([\w-]+)(\S*)$/;
|
||||
// link変数に対してmatchメソッドを使って、正規表現とマッチした結果を取得
|
||||
var match = link.match(youtubePattern);
|
||||
if (match) {
|
||||
// 入力がYouTubeのリンクの形式に合っている場合
|
||||
// 埋め込み用のURLに変換
|
||||
// match[4]は、動画IDとなる文字列
|
||||
var embed = "https://www.youtube.com/embed/" + match[4] + "?rel=1&autoplay=1";
|
||||
// match[5]は、動画IDとなる文字列
|
||||
var embed = "https://www.youtube.com/embed/" + match[5] + "?rel=0&autoplay=1";
|
||||
// フレームのsrc属性に設定
|
||||
frame.src = embed;
|
||||
// 動画のタイトルを取得するために、Web検索を行う
|
||||
var query = "YouTube " + match[4];
|
||||
var results = search_web(query);
|
||||
// Web検索の結果から、最初に見つかった動画のタイトルを取得
|
||||
var videoTitle = results.web_search_results[0].title;
|
||||
// <title>タグの中に動画のタイトルを入れる
|
||||
title.textContent = videoTitle;
|
||||
// ここで動画のタイトルを取得する処理を追加する場合は、適切なAPIを使用するか、
|
||||
// 事前に動画のタイトルを知っている必要があります。
|
||||
// title.textContent = "動画のタイトル"; // 仮のタイトルを設定
|
||||
} else {
|
||||
// 入力がYouTubeのリンクの形式に合っていない場合
|
||||
// confirm関数で、はいといいえのダイアログを表示する
|
||||
var result = confirm("不正なURLです。\n OKを押すとabout:blankへ遷移されます。\n キャンセルを押すと再度入力可能になります。");
|
||||
var result = confirm("不正なURLです。\nOKを押すとabout:blankへ遷移されます。\nキャンセルを押すと再度入力可能になります。");
|
||||
if (result) {
|
||||
// OKを押した場合
|
||||
window.location = "about:blank";
|
||||
} else {
|
||||
// キャンセルを押した場合
|
||||
// ページをリロードして最初に戻る
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
|
読み込み中…
新しいイシューから参照
ユーザーをブロックする