Abrir vídeo em outra janela do youtube com tempo de visualização e ger
Tenho um site de visualização que não está 100% porque o YouTube não está mais registrando as visualizações. Ao clicar em assistir, o player do vídeo é aberto no próprio site e depois de alguns segundos de visualização, o usuário ganha como recompensa uma certa quantidade de moedas (coins).
Abaixo, meu código:
<div class="contentbox">
<div class="head">Youtube</div>
<div class="contentinside">
<?php
foreach($_GET as $key => $value) {
$gets[$key] = filter($value);
}
if(isset($_GET['a'])){if($_GET['a'] == "skip"){
$sit1 = mysql_query("SELECT * FROM `youtube` WHERE `id`='{$gets['id']}'");
$sit = mysql_num_rows($sit1);
if($sit > 0){
mysql_query("INSERT INTO `watched` (user_id, site_id) VALUES('{$data->id}','{$gets['id']}')");
}}}
$mysite = mysql_query("SELECT * FROM `youtube` WHERE `active` = '0' AND `banned` = '0' AND (SELECT `coins` FROM `users` WHERE `id` = `youtube`.`user` ) >= `cpc` AND `id` NOT IN (SELECT `site_id` FROM `watched` WHERE `user_id`='{$data->id}') ORDER BY `cpc` DESC LIMIT 0, 1");
$site2 = mysql_fetch_object($mysite);
$ext = mysql_num_rows($mysite);
if($ext > 0){
?>
<?php
// esse código foi movido para antes da tag <script>, porque a url é usada no início dele
$url = explode('watch?v=', $site2->url);
$url = $url[1];
?>
<script>
// Essas duas variáveis são novas
var videoId = "<?php echo $url;?>";
var player = null;
var playing = false;
var fullyPlayed = false;
var interval = '';
var played = 0;
var length = 40;
function YouTubePlaying(){
played += 0.1;
roundedPlayed = Math.ceil(played);
document.getElementById("played").innerHTML = Math.min(roundedPlayed,length);
if (roundedPlayed == length){
if (fullyPlayed == false){
YouTubePlayed();
fullyPlayed = true;
}
}
}
function YouTubePlayed(){
document.getElementById("Hint").style.display='hidden';
$("#Hint").html('Please Wait...');
var response = '<? echo $site2->id;?>';
var cpc = '<? echo $site2->cpc - 1;?>';
var userid = "<? echo $data->id;?>";
$.ajax({
type: "POST",
url: "plugins/yt/complete.php",
data: "site=" + response +"&userid=" + userid,
success: function(msg){
var coins = $("#coins").html().replace(" Coins", "");
coins = parseInt(coins) + parseInt(cpc);
$("#coins").html(coins + " Coins");
$("#Hint").html('You have gained ' + cpc + ' coins!');
}
});
document.getElementById(response).style.visibility = "visible";
}
function onYouTubeIframeAPIReady(){
// aqui está usando a "nova" API... o funcionamento é basicamente
// o mesmo, mas a forma de usar muda um pouco
player = new YT.Player("player", {
height: "356",
width: "625",
videoId: videoId,
events: {
onReady: function(){
player.playVideo();
},
onStateChange: onPlayerStateChange
}
});
}
// o nome do parâmetro foi alterado
function onPlayerStateChange(playerInfo){
// a linha abaixo é nova
var newState = playerInfo.data;
if (newState == 1){
playing = true;
interval = window.setInterval('YouTubePlaying()',100);
}else if (newState == 0){
if (playing) window.clearInterval(interval);
playing = false;
ytplayer.stopVideo();
ytplayer.playVideo();
}else{
if (playing) window.clearInterval(interval);
playing = false;
}
};
function refreshpage(){
window.location.reload();
}
// as linhas abaixo também são novas
var tag = document.createElement("script");
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName("script")[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
</script>
<div id="Hint" class="hint"></div>
<center>
Assista este vídeo durante 40 segundos e depois você vai receber <? echo $site2->cpc;?> coins<br/><br/>
<div id="player">Você precisa Flash player 8+ e JavaScript habilitado para ver este vídeo.</div>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: "myytplayer" };
new YT.Player("http://www.youtube.com/watch?v=<? echo $url;?>?enablejsapi=0&playerapiid=ytplayer", "ytPlayer", "625", "356", "8", null, null, params, atts);
</script>
<br/>
<br />Você deve assistir <span id="played">0</span>/40 segundos (<a href="xchange.php?p=yt&a=skip&id=<? echo $site2->id;?>" style="color:blue"> Pular este vídeo </a>) (<a href="report.php?id=<? echo $site2->id;?>" target="_blank"> Reportar Problema e ganhar 10 coins </a>)
<div id="<? echo $site2->id;?>" style="visibility:hidden"><a href="javascript:refreshpage()">Assistir ao Próximo Vídeo</a></div>
</center>
<?php
}else{ echo '<div class="error"> Não há mais vídeos no momento. Por favor, tente de novo mais tarde.</div>'; } ?>
</div>
</div>
Já descobri que outros sites com o Followlike e o AddMeFast estão abrindo os vídeos em uma nova janela. Isso faz o YouTube contabilizar a visualização.
Se abrir dentro do site ou blog, o YouTube não contabiliza as visualizações pois utiliza o IP do site. Nesse caso, mesmo que no site um vídeo tenha 1 milhão de visualizações, só será contabilizado apenas 1 visualização.
Site: tuberplay.tk
Usuário: convidado
Senha:123456
Para resolver isso, preciso que ao clicar em assistir o vídeo seja aberto uma nova janela como se tivesse assistindo no player do YouTube.
Eu não entendo nada sobre PHP. Se alguém puder ajudar, agradeço
Discussão (1)
Carregando comentários...