Sphinxでの動画の貼り方
Sphinxで動画を貼るためのメモ書き。
Sphinx拡張の導入
のディレクトリ(フォルダ)をダウンロード。
インストール方法は次のどちらでもオッケー(参考)。
site-packages ディレクトリにインストール
ダウンロードした各ディレクトリに移動して
% cd dir
% python setup.py build
% sudo python setup.py install
でインストール完了。
Sphinxプロジェクトのルート下に設置
もしくは、プロジェクトのルート下のディレクトリ(例えば、exts)に次を設置してconf.pyを編集。
- youtube.py
- nicovideo.py
Note
conf.py
import sys
import os
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
sys.path.insert(0, os.path.abspath('exts'))
さいごに、Sphinx拡張の有効化。
Note
conf.py
# Add other Sphinx extensions here
extensions = [
'sphinxcontrib.youtube',
'sphinxcontrib.nicovideo'
]
インストールできていない場合はこんなエラーが出る。
Warning
ビルド時のエラー
Extension error:
Could not import extension sphinxcontrib.youtube (exception: No module named youtube)
具体例
Note
Sphinxでの動画ディレクティブ
.. youtube:: ecOZrN8_a3Y
.. nicovideo:: sm16
ニコニコ動画 アイドルマスター 最古の動画 - ニコニコ大百科
レスポンシブに対応
貼り付けた動画のサイズを変化させるために、こんなreSTにしている。
.. container:: video-wrapper
.. container:: video-container
.. youtube:: ecOZrN8_a3Y
.. container:: video-wrapper
.. container:: video-container
.. nicovideo:: sm16
containerディレクティブについてはこことかココを参考にしてください。
HTMLで外部の<div>を生成してます。
Note
HTML & CSS
<div class="video-wrapper container">
<div class="video-container container">
<!-- <iframe> or <embed> -->
</div>
</div>
/* CSS for video wrap */
.container {
/* bootstrap reset */
width: auto;
margin-right: 0;
margin-left: 0;
}
.video-container {
position: relative;
margin-top: 1.2em;
margin-bottom: 1.2em;
padding-bottom: 56.25%;
padding-top: 30px;
height: 0;
overflow: hidden;
}
.video-container iframe,
.video-container object,
.video-container embed {
position: absolute !important;
top: 0 !important;
left: 0 !important;
width: 100% !important;
height: 100% !important;
}
.video-wrapper {
/* max size setting */
width: 500px;
max-width: 100%;
}
参考にしました
- YoutubeやHTML5video等の埋め込み動画のサイズをwindow幅に合わせて動的にリサイズ/可変にする方法 | HTML5 – CSS3 mag
- 埋め込み動画のサイズをレスポンシブに変更する方法 | アイデアハッカー
実際にiPhoneで見てみると、ニコニコ動画は再生ボタンが行方不明になります...
なので、サムネイルの方が分かりやすいでしょう。
ニコニコ動画サムネイル
Note
Sphinxでのディレクティブ
.. nicovideo:: sm16
:thumb:
ここでもサイズ変更のために、こんなreSTにしている。
.. container:: video-wrapper-thumb
.. container:: video-container
.. nicovideo:: sm16
:thumb:
Note
CSS
/* CSS for niconico thumbnail */
.video-wrapper-thumb {
/* max size setting */
width: 312px;
max-width: 100%;
}
.video-wrapper-thumb iframe {
/* thumb re design */
border: none !important;
}