可能吗?记录播放计数嵌入YouTube视频

Possible? Record play counts for embedded YouTube videos

本文关键字:YouTube 视频 播放 记录      更新时间:2023-09-26

我有一个允许用户发布视频的web应用程序。我想知道是否有可能记录播放计数,以便每次有人点击播放按钮时计数器添加+1。

我目前使用auto_html来做嵌入:

   <% if micropost.url.include? 'youtu' %>
      <%= auto_html(micropost.url) {youtube(:width => 550, :height => 190)}   %>
   <% end %>
   <% if micropost.url.include? 'soundcloud' %>
     <%= auto_html(micropost.url) {soundcloud}  %>
   <% end %>

对于Youtube,当我点击嵌入视频的任何地方时,它必须记录,对于Soundcloud,一旦点击播放按钮,它就必须播放。这是怎么做到的呢?非常感谢您的建议。

我不想要视频的youtube观看次数,我想知道有人在我的网站上观看了多少次。

。YouTube API("视频入口")以更可靠的方式为您提供这些信息,因此您不需要自己存储它。获取"entry->yt:statistics->viewCount"信息。

。值得注意的是,当开始播放视频时,"viewCount"不会增加,而是在一段时间后增加。我记不清具体是多少了,但我想是当你看了大约75%的视频或其他什么时候。

编辑把它放在这里,这样任何通过谷歌的人都能看到。

。如果出于某种原因你需要将其保存在服务器上,你可以使用Youtube JavaScript API在视频开始播放时触发一个事件(检查"onStateChange"事件的值为"1"——当视频开始实际播放时)。SoundCloud也有一个Widget API事件:"onMediaStart"。

。然后,您可以通过Ajax调用将信息保存在服务器上。

var MEDIA_ID = 1; //your internal's media ID;
function checkPlayerState(newState) { if (newState === 1) { incrementCount(); } }
function incrementCount() { $.post('inc.php', {mediaid: MEDIA_ID}); }
soundcloud.addEventListener('onMediaStart', incrementCount);
ytplayer.addEventListener('onStateChange', checkPlayerState);