URLまたは埋め込みコードがあれば、YouTubeビデオを表示または埋め込む方法を誰か教えてもらえますか?
13 に答える
YouTube ビデオから 11 文字のコードを保存するようユーザーに依頼する必要があります。
たとえばhttp://www.youtube.com/watch?v=Ahg6qcgoay4の場合
11 文字コードは、Ahg6qcgoay4 です。
次に、このコードを取得してデータベースに配置します。次に、YouTube ビデオをページに配置したい場所に、データベースから文字をロードし、次のコードを挿入します。
たとえば、Ahg6qcgoay4 の場合は次のようになります。
<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4" /></object>
YouTube の長い URL と短い URL の両方から、次の方法で埋め込みを取得できます。
$ytarray=explode("/", $videolink);
$ytendstring=end($ytarray);
$ytendarray=explode("?v=", $ytendstring);
$ytendstring=end($ytendarray);
$ytendarray=explode("&", $ytendstring);
$ytcode=$ytendarray[0];
echo "<iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/$ytcode\" frameborder=\"0\" allowfullscreen></iframe>";
それが誰かを助けることを願っています
<object>
とタグはHTML Youtube Videos<embed>
に従って非推奨です。そのためにはタグを使用することをお勧めします。<iframe>
<iframe width="420" height="315"
src="http://www.youtube.com/embed/XGSy3_Czz8k?autoplay=1">
</iframe>
ユーザーがリンク内のビデオ ID を検索してフォーム フィールドに入力することに生涯を費やさないようにするには、YouTube で見つけたビデオのリンクをユーザーに投稿させます。次の正規表現を使用してビデオ ID を取得できます。 :
preg_match("/^(?:http(?:s)?:\/\/)?
(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|
(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $url, $matches);
取得できる動画 ID を取得するに$matches[1]
は、次のものが一致します。
- youtube.com/v/vidid
- youtube.com/vi/vidid
- youtube.com/?v=vidid
- youtube.com/?vi=vidid
- youtube.com/watch?v=vidid
- youtube.com/watch?vi=vidid
- youtu.be/vidid
- youtube.com/embed/vidid
- http://youtube.com/v/vidid
- http://www.youtube.com/v/vidid
- https://www.youtube.com/v/vidid
- youtube.com/watch?v=vidid&wtv=wtv
- http://www.youtube.com/watch?dev=inprogress&v=vidid&feature=related
- https://m.youtube.com/watch?v=vidid
この回答の一部は、この質問の @shawn の回答で参照されています。
正規表現を使用して、後に「ビデオID」を抽出しますwatch?v=
ビデオIDを変数に保存し、この変数を呼び出しましょうvid
ランダムなビデオから埋め込みコードを取得し、埋め込みコードからビデオIDを削除して、vid
取得したものに置き換えます。
PHPで正規表現を処理する方法がわかりませんが、それほど難しいことではありません
Pythonのサンプルコードは次のとおりです。
>>> ytlink = 'http://www.youtube.com/watch?v=7-dXUEbBz70'
>>> import re
>>> vid = re.findall( r'v\=([\-\w]+)', ytlink )[0]
>>> vid
'7-dXUEbBz70'
>>> print '''<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/%s&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/%s&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>''' % (vid,vid)
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
>>>
正規表現v\=([\-\w]+)
は、後に続く文字とダッシュの(サブ)文字列をキャプチャしますv=
これは、URL をリンクに自動的に変換し、YouTube からのビデオ URL を自動的に埋め込むために作成したコードです。私が取り組んでいるチャット ルーム用に作成しましたが、かなりうまく機能します。たとえばブログのように、他の目的でも問題なく機能すると確信しています。
関数「autolink()」を呼び出して、解析する文字列を渡すだけです。
たとえば、以下の関数を含めて、このコードをエコーします。
`
echo '<div id="chat_message">'.autolink($string).'</div>';
/****************Function to include****************/
<?php
function autolink($string){
// force http: on www.
$string = str_ireplace( "www.", "http://www.", $string );
// eliminate duplicates after force
$string = str_ireplace( "http://http://www.", "http://www.", $string );
$string = str_ireplace( "https://http://www.", "https://www.", $string );
// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
// Check if there is a url in the text
$m = preg_match_all($reg_exUrl, $string, $match);
if ($m) {
$links=$match[0];
for ($j=0;$j<$m;$j++) {
if(substr($links[$j], 0, 18) == 'http://www.youtube'){
$string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string).'<br /><iframe title="YouTube video player" class="youtube-player" type="text/html" width="320" height="185" src="http://www.youtube.com/embed/'.substr($links[$j], -11).'" frameborder="0" allowFullScreen></iframe><br />';
}else{
$string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string);
}
}
}
return ($string);
}
?>
`
プログラムで動画をアップロードする場合は、YouTube Data API for PHPを確認してください。
これは Joomla で簡単に実行できます。サンプルの YouTube URL を想定してみましょう - https://www.youtube.com/watch?v=ndmXkyohT1M
<?php
$youtubeUrl = JUri::getInstance('https://www.youtube.com/watch?v=ndmXkyohT1M');
$videoId = $youtubeUrl->getVar('v'); ?>
<iframe id="ytplayer" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/<?php echo $videoId; ?>" frameborder="0"/>
この同じトピックを検索すると、Youtube API の Javascript を使用する別の方法が見つかりました
直接: http://code.google.com/apis/ajax/playground/#simple_embed
API のロード
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
そして、次の JavaScript コードを実行します。
google.load("swfobject", "2.1");
function _run() {
var videoID = "ylLzyHk54Z0"
var params = { allowScriptAccess: "always" };
var atts = { id: "ytPlayer" };
// All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
swfobject.embedSWF("http://www.youtube.com/v/" + videoID + "&enablejsapi=1&playerapiid=player1",
"videoDiv", "480", "295", "8", null, null, params, atts);
}
google.setOnLoadCallback(_run);
完全なサンプルは、前述のページhttp://code.google.com/apis/ajax/playgroundにあります。
単純に の php 入力フォームを作成しVarchar date
、varchar
長さを 300 とします。次に、ユーザーに埋め込みコードをコピーして貼り付けるように依頼します。レコードを表示すると、ストリーミングされたビデオが表示されます。
Alec Smart の回答のちょっとした更新: AS2 は現在廃止されているため、彼の例を機能させるには '?version=3' が必要です。詳細については、 「再生するコンテンツの選択」の下にあるYouTube 埋め込みプレーヤーとプレーヤー パラメータの YouTube リファレンスを参照してください。
言い換えると:
<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4?version=3" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4?version=3" /></object>
どうやら、上記の Youtube リファレンスは次のようにこれを行います (内部の埋め込みは、オブジェクト タグをまだサポートしていないブラウザーのフォールバックとしておそらく使用されます)。
<object width="640" height="390">
<param name="movie"
value="https://www.youtube.com/v/u1zgFlCw8Aw?version=3&autoplay=1"></param>
<param name="allowScriptAccess" value="always"></param>
<embed src="https://www.youtube.com/v/u1zgFlCw8Aw?version=3&autoplay=1"
type="application/x-shockwave-flash"
allowscriptaccess="always"
width="640" height="390"></embed>
</object>
または iframe を使用する ( http://example.comをサイトのドメインに置き換えます):
<iframe id="ytplayer" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/u1zgFlCw8Aw?autoplay=1&origin=http://example.com" frameborder="0"/>
ラブボーイ、
明確に理解できれば、ユーザーが Youtube ビデオの URL/コードを提供すると、そのビデオがページに表示されます。
そのためには、レイアウトなどを使用して簡単なページを作成するだけです。YouTube からビデオ埋め込みコードをコピーして、ページに貼り付けます。埋め込みコードを、VideoID などのフィールドに置き換えます。この VideoId を、ユーザーが提供するコードに設定します。
編集:Alec Smartによる回答を参照してください。