• 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2020-02-10T15:31:58+09:00;2018-10-11T23:02:18+09:00","default:kanateko0404","kanateko0404")
#author("2020-02-12T22:33:41+09:00","default:kanateko0404","kanateko0404")
RIGHT:&tag(プラグイン,自作,追加);
#contentsx
*新YouTube埋め込みプラグイン [#d404155f]
#style(class=table_float_right){{
|RIGHT:BGCOLOR(lightgray):||c
|プラグイン名|youtube.inc.php|
|製作者|kanateko|
|バージョン|0.3.0|
|動作確認|PukiWiki 1.5.1|
|最終更新|2018/10/10 17:21|
|ダウンロード|*調整中*|

#style(class=summary){{
|>|~slideshow.inc.php|h
|RIGHT:100|150|c
|~製作者|kanateko|
|~ライセンス|GPLv3|
|~動作確認|PukiWiki 1.5.2|
|~最終更新|2020/02/12|
}}
既存のプラグイン([[pukiwiki:自作プラグイン/youtube.inc.php]])だと機能が少なかったため、PHPの勉強も兼ねて一から新しく作ったもの

-このプラグインでできること (ver0.3.0)
--YouTube動画の埋め込み
--再生リストの埋め込み (自動判別) &size(10){&color(red){new!};};
--動画サイズの指定 (2通りの方法で指定可) &size(10){&color(red){new!};};
--自動再生のON/OFF &size(10){&color(red){new!};};
--再生開始位置の指定 &size(10){&color(red){new!};};
--再生終了位置の指定 &size(10){&color(red){new!};};
--再生リストの開始位置の指定 &size(10){&color(red){new!};};
既存のプラグイン([[pukiwiki:自作プラグイン/youtube.inc.php]])だと機能が少なかったため、勉強も兼ねて一から新しく作ったもの。
iframeを使用するのでPukiWiki 1.5.2 用となっています。
オプションで様々なパラメータを指定することができ、複数タイプの動画リストにも対応している。

**セットアップ [#i40303c1]
~*調整中*
-このプラグインでできること
--YouTube動画の埋め込み (iframe)
--再生リストの埋め込み (自動判別)
--指定ユーザーの動画リスト埋め込み &size(10){&color(red){new!};};
--指定キーワードの動画リスト埋め込み &size(10){&color(red){new!};};
--動画サイズの指定 (何通りか指定方法あり)
--自動再生のON/OFF
--ループ再生のON/OFF &size(10){&color(red){new!};};
--再生開始位置の指定
--再生終了位置の指定
--再生リストの開始位置の指定

**ダウンロード [#i62b3f12]

最新: [[GitHub>https://github.com/kanateko/pukiwiki-plugin]]

|~日付|~バージョン|~備考|h
|2020/02/12|1.23|CSS無しでレスポンシブになるよう変更&br;ループ機能追加|
|2020/02/11|1.21|全体的に書き直し&br;ユーザー・キーワードの指定機能追加|

**インストール [#ma9d057e]
+ダウンロードした「youtube.inc.php」をpluginフォルダに入れる。

**使い方 [#s897c501]
 #youtube(<動画ID or リストID>[,オプション])
インライン型(&amp;youtube();)でも使用可能

-''動画ID / リストID''
動画ID: 動画URLのv=のあとにある11文字の文字列
リストID: 再生リストURLのlist=のあとにある24文字か34文字の文字列
リストIDはLLもしくはPLで始まる
例:
 https://www.youtube.com/watch?v=ccWpZdGexvg&t
 ココ → ccWpZdGexvg&t
 
 #youtube([動画ID or リストID or user=ユーザー名 or search=キーワード][,オプション])

%%%''第一引数''%%%

-&color(#eea0a0){動画ID};: 動画URLのv=のあとにある11文字の文字列
 https://www.youtube.com/watch?v=ccWpZdGexvg
 ココ → ccWpZdGexvg

-&color(#eea0a0){リストID};: 再生リストURLのlist=のあとにあるPLから始まる34文字の文字列
 https://www.youtube.com/watch?v=3Uhnj8cCWeY&list=PLRYRsgVEFvuB03xHzq0wv3DUVZzbDZXMn
 ココ → PLRYRsgVEFvuB03xHzq0wv3DUVZzbDZXMn

-''オプション: サイズ''
サイズ指定方法は2つある
動画IDとリストIDは第一引数にそのまま入れれば自動的に判別してくれる。
一応リストIDは明示的に&color(#eea0a0){list=リストID};とすることもできる。

-&color(#eea0a0){user=ユーザー名};: 指定したユーザーがアップロードした動画をリストにする。
 https://www.youtube.com/user/BorderlandsGame/featured
 ココ → BorderlandsGame

-&color(#eea0a0){search=キーワード};: 指定したキーワードにマッチした動画をリストにする。

%%%''それ以降''%%%

-''オプション: 動画の幅''
サイズ指定方法は3つある
サイズを指定しない場合はデフォルトで560x315
++''width=, height=''
個別のオプションとして幅と高さを指定する方法
--''width=<数値>''
例:
 #youtube(ccWpZdGexvg&t,width=640,height=360)
++''widthxheight''
小文字のエックスを挟んで一度に幅と高さを指定する方法
 #youtube(ccWpZdGexvg,width=640)
--''<数値>px''
例:
 #youtube(ccWpZdGexvg&t,640x360)
 #youtube(ccWpZdGexvg,640px)
--''<数値>x''
旧版のプラグインと置き換えた場合に互換性を保つための指定方法
数字の後に小文字のエックスを付ける。
例:
 #youtube(ccWpZdGexvg,640x360)

-''オプション: 自動再生''
''autoplay=1 or 0''
自動再生のon/offを指定する
指定しない場合はデフォルトでoff
再生リストの場合は指定しても無効
例:
 #youtube(ccWpZdGexvg&t,autoplay=1)
 #youtube(ccWpZdGexvg,autoplay=1)

-''オプション: ループ''
''loop=1 or 0''
ループ再生のon/offを指定する
指定しない場合はデフォルトでoff
再生リストの場合は指定しても無効
例:
 #youtube(ccWpZdGexvg,loop=1)

-''オプション: 開始位置 / 終了位置''
''start=, end=''
''start=<数値>, end=<数値>''
動画の再生開始位置と終了位置を秒数で指定する
再生リストの場合は指定しても無効
例:
 #youtube(ccWpZdGexvg&t,start=20)
 #youtube(ccWpZdGexvg,start=20)

-''オプション: リストの開始位置''
''index=''
再生リストの何番目の動画を再生するかを指定する
リストの開始位置を指定する。
指定しない場合はデフォルトで最初から。 (0番目)

**使用例 [#gade07ca]
 #youtube(FRPeYP6gS-s,start=123)
 #youtube(PLSHdOA4o6T_eodXoWeGyD7gIxWlOwXdUx,400x225,index=2)
#youtube(FRPeYP6gS-s,start=123)
#youtube(PLSHdOA4o6T_eodXoWeGyD7gIxWlOwXdUx,400x225,index=2)

**プラグイン内オプション [#k1ff13c2]
-''ENABLE_IFRAME_EMBED'': 常にiframeで埋め込む
-''ALWAYS_ENABLE_AUTOPLAY'': 常に自動再生を許可する
-''PRIVACY_ENHANCED_MODE'': プライバシー強化モード(Cookieを使用しない)にする

**懸念事項 [#pe78631d]
XHTML 1.1でiframeタグは使ってはいけないということだったので、objectタグを使用して埋め込むようにしました
・・・が、objectタグを使った場合、フルスクリーン表示ができない、自動再生が正しく動作しないといった問題があったため、[[pukiwiki:自作プラグイン/iframe.inc.php]]を参考にXHTML 1.0 Transitionalでiframeを使って埋め込む力技を使用することに
オプションのENABLE_IFRAME_EMBEDを無効にするとObjectタグでの埋め込みに切り替わります

加えてPHPを実際に触り始めて日が浅いため、引数を判別する関数の書き方が非常にアヤシイ・・・
一応一通りテストして問題なく動いてはいますが、できればもっときれいに作り直したいところ

**コメント [#e955d2c4]
#pcomment(,10,above,reply)
#pcomment2(,10,above,reply)