レッスンの動画パートのメディアに、Vimeoを利用した時の視聴履歴取得方法

フォローする
オウルキャスト

配信プラットフォームに「Vimeo」をご利用の場合、Vimeoの契約プランや動画の登録方法によって、
レッスンの動画パートで視聴履歴を取得するために必要な設定が異なります

以下のパターンの中から、自社の状況に該当する項目の手順をご確認のうえ、作業を行ってください。

1. Vimeoの「無料プラン」をご利用の場合

無料プランをご利用の場合、メディアの登録方法は「埋め込みコード配信」のみとなります。

  • メディアの登録方法: 「埋め込みコード配信」から動画を登録してください。
  • 必要な作業:初期設定のままでは視聴履歴を取得できません。
    本ページ下部の「【手順】視聴履歴を取得するためのテンプレート変更方法」を参考に、テンプレートの変更作業を行ってください。

2. Vimeoの「有料プラン(Starterプラン以上)」をご利用の場合

有料プランをご利用の場合は、以下2種類のメディア登録方法からお選びいただけます。
選択した方法に合わせて作業を行ってください。

①「埋め込みコード配信」を利用する場合

  • メディアの登録方法: 「埋め込みコード配信」から動画を登録してください。
  • 必要な作業:初期設定のままでは視聴履歴を取得できません。
    本ページ下部の「【手順】視聴履歴を取得するためのテンプレート変更方法」を参考に、テンプレートの変更作業を行ってください。

②「Vimeo連携機能」を利用する場合

APIによるVimeo連携設定を行うことで、より便利に動画を管理・配信できます。

  • 連携機能でできること:
    • 管理画面からドラッグ&ドロップで動画をアップロードするだけで、連携先のVimeo上にも自動で動画が登録されます。
    • すでにVimeoにアップロード済みの動画も管理画面に同期され、コンテンツやレッスンの動画パートにそのまま利用できます。
  • メディアの登録方法: 「Vimeo連携機能」の利用設定を行ってください。
  • 必要な作業:Vimeo連携機能を利用する場合、視聴履歴を取得するためのテンプレート変更作業は不要です。

ご注意点

(1)動画コンテンツでVimeoを使う場合は、この方法では取得できません。
動画コンテンツのメディアに、Vimeoを利用した時の視聴履歴取得方法」を参照してください。

(2)レッスンの動画パートで使うメディアにVimeo(無料プラン)以外の埋め込みコードを使った場合は、
テンプレートを変更しても動画視聴履歴は取得できません。


【手順】視聴履歴を取得するためのテンプレート変更方法

テンプレートの変更後は事前に必ず動作確認してください。

PC版テンプレート

デザイン管理>テンプレート>「PC版」タブ

PC版::埋め込みコードメディア/メディアプレイヤー(レッスン向け)

テンプレートの内容を下記のように差し替えてください

{{lessonContent.media.profiles.code|raw}}
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
function initPlayer(startTime) {
{% if curriculum %}
var recorder  = Socialcast.createWatchLessonHistoryRecorder({{lessonContent.id}}, {{lessonPart.id}}, 60, {{curriculum.id}});
{% else %}
var recorder  = Socialcast.createWatchLessonHistoryRecorder({{lessonContent.id}}, {{lessonPart.id}}, 60);
{% endif %}
recorder.playEndRateUpdate({{playEndRate.rate}});
var iframe = document.querySelector('iframe[src*="/player\.vimeo\.com/video/"], iframe[src*="/vimeo\.com/event"]');
if (iframe != null) {
	var player = new Vimeo.Player(iframe);
    player.on('loaded', function() {
      player.setCurrentTime(startTime);
      recorder.timeupdate(startTime);
    });
    player.on('play', function() {
      recorder.timeupdate(startTime);
      recorder.start();
    });
    player.on('pause', function() {
        recorder.stop();
    });
    player.on('ended', function() {
        recorder.complete();
        recorder.stop(true);
        recorder.timeupdate(0);
        player.setCurrentTime(0);
    });
    player.on('timeupdate', function(event) {
        player.getDuration().then(function(duration)
        {
            recorder.totalTimeUpdate(duration);
            recorder.timeupdate(event.seconds);
        recorder.checkPlayEnd();
        }
        ).catch(function(error) {
        // an error occurred
        });
    });
  }
}
</script>

スマートフォン版テンプレート

デザイン管理>テンプレート>「スマートフォン版」タブ

スマートフォン版::埋め込みコードメディア/メディアプレイヤー(レッスン向け)

テンプレートの内容を下記のように差し替えてください

{% if lessonContent.media.profiles.code_mobile|replace({' ':''})|trim is not empty %}
{{ lessonContent.media.profiles.code_mobile|raw }}
{% else %}
{{ lessonContent.media.profiles.code|raw }}
{% endif %}

<script src="https://player.vimeo.com/api/player.js"></script>
<script>
function initPlayer(startTime) {
{% if curriculum %}
var recorder  = Socialcast.createWatchLessonHistoryRecorder({{lessonContent.id}}, {{lessonPart.id}}, 60, {{curriculum.id}});
{% else %}
var recorder  = Socialcast.createWatchLessonHistoryRecorder({{lessonContent.id}}, {{lessonPart.id}}, 60);
{% endif %}
recorder.playEndRateUpdate({{playEndRate.rate}});
var iframe = document.querySelector('iframe[src*="/player\.vimeo\.com/video/"], iframe[src*="/vimeo\.com/event"]');
if (iframe != null) {
var player = new Vimeo.Player(iframe);
player.on('loaded', function() {
player.setCurrentTime(startTime);
recorder.timeupdate(startTime);
});
player.on('play', function() {
recorder.timeupdate(startTime);
recorder.start();
});
player.on('pause', function() {
recorder.stop();
});
player.on('ended', function() {
recorder.complete();
recorder.stop(true);
recorder.timeupdate(0);
player.setCurrentTime(0);
});
player.on('timeupdate', function(event) {
player.getDuration().then(function(duration)
{
recorder.totalTimeUpdate(duration);
recorder.timeupdate(event.seconds);
recorder.checkPlayEnd();
}
).catch(function(error) {
// an error occurred
});
});
}
}
</script>
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています