BLOG
ブログ
programming
WebサイトにYouTubeの動画を大量に埋め込んでも重くならないようにする方法
こんにちは、ティウェブ藤園です。
動画を埋め込んだWebサイトをよく見かけるようになりました。
Webサイトに動画を埋め込むにあたっては、
YouTubeに動画をアップして、それをWebサイトに
表示させる方法がよく使われている手法と思います。
ですが先日、1ページに80個以上(!)の
YouTube動画を一覧化して埋め込む案件があり、
加えてスマートフォンサイトということで、
いかに軽量化するかを考える必要がありました。
※ちなみに、80個以上のYouTube動画を
通常の埋め込み方法であるiframeタグの貼り付けで行うと、
ページが重すぎて読み込みエラーとなり、ページ自体が表示されませんでした。。。
■動画のサムネイル画像を使う
実は、YouTubeはサムネイル画像は簡単に取得できることをご存知でしょうか?
– サムネイル画像呼び出し例
– サムネイル画像を埋め込むコード
「YouTube動画のID」は、
アップロードした動画の再生ページのURLの末尾、
「watch?v=XXXXXXXXXX」の、「v=」の後の英数字を入れてください。
<img src="//i.ytimg.com/vi/YouTube動画のID/mqdefault.jpg" alt="">
※今回使用している「mqdefault」は320px×180pxサイズの画像です。
はじめはサムネイル画像だけを表示し、
ユーザーが再生したい動画を選択してはじめて動画データを読み込むようにすれば、
遅延読み込みよりも手軽に1ページのデータ量を軽量化することができます。
■デモ
実際にサムネイル画像を埋め込み、
クリックした際に動画を読み込む形にした例を記載します。
一見して、通常のiframeの埋め込みと差異はないように見えますが、
実際は動画のサムネイル画像のみを読み込んで、
その上に再生ボタンの画像を重ねただけの形となっています。
サムネイル画像から直接YouTubeにリンクする形でも問題はありませんが、
今回はWebサイトからの離脱を防ぐため、jQueryを使用してページ内でモーダルが開く形にしています。
※jQueryのモーダル系プラグイン「Magnific Popup」
https://dimsemenov.com/plugins/magnific-popup/
■デモのコード
<!-- CSS読み込み -->
<link rel="stylesheet" href="./css/magnific-popup.css">
<!-- 動画のリンク、サムネイル呼び出し -->
<p class="md_iframe_image">
<a href="//www.youtube.com/watch?v=YouTube動画のID" class="md_popup-iframe">
<img src="//i.ytimg.com/vi/YouTube動画のID/mqdefault.jpg" alt="">
</a>
</p>
<!-- jQueryの読み込み -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js" async=""></script>
<script>
$(window).on('load', function(){
$('.md_popup-iframe').magnificPopup({
type: 'iframe',
mainClass: 'mfp-fade',
removalDelay: 200,
preloader: false
});
});
</script>
.md_iframe_image {
background: #fff;
}
.md_iframe_image a {
border: 2px solid #fff;
display: block;
position: relative;
}
.md_iframe_image a:hover {
opacity: 0.6;
}
.md_iframe_image a::before {
background: url(サムネイルに重ねる動画再生ボタンの画像) center center / 64px 64px no-repeat;
content: "";
display: block;
width: 64px;
height: 64px;
margin: -32px auto 0;
position: absolute;
top: 50%;
left: 0;
right: 0;
z-index: 1;
}
.md_iframe_image a img {
width: 100%;
}
■まとめ
回線環境もずいぶん進化しており、重いWebサイトでも
それなりに表示されるようにはなってきていますが、
やはり動画となるとなかなかページが読み込まれずにイライラ……
ということも少なくないかと思います。
スムーズに表示されないページはユーザーの離脱率も高くなります。
ティウェブではこういった手法をはじめ、お客様によりよいWebサイトを
提供できるよう日々、研究や工夫を重ねています。
Web制作・印刷物制作でお困りならティウェブまで
Web・DTPデザイン制作、翻訳、情報配信サービス、顧客管理など、各種お問い合わせはお電話もしくはメールフォームよりお気軽にご相談ください。

