Jump to content
Fórum Script Brasil
  • 0

Abrir vídeo em outra janela do youtube com tempo de visualização e gerando coins


Question

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/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

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Amigos,

Trabalhei num código e quase deu certo. Está faltando apenas fazer uma ligação que estabeleça que o vídeo que foi assistido tire os coins do usuário que o postou e dê para quem assistiu.

 

Após assistir o vídeo está aparecendo a informação:

Warning: Invalid argument supplied for foreach() in /home/u960151055/public_html/2/config.php on line 22

 

Eu mantive o visualizador anterior para que se possa ter um parâmetro do que pode ser feito.

 

Mas atenção: o site que estou fazendo as mudanças é esse outro pois não quero atrapalhar os usuários do site TuberPlay

Site: tuberplay.tk/2

Usuário: convidado

Senha:123456

 

Olha o mesmo código onde acrescentei o visualizador em outra janela (retirei de outro site par teste):

Obs. acredito que tem que mudar dados no eval(function

 

<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('Aguarde...');
        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/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>)&nbsp;(<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>



  </script>
</div>
<div id="boxes" style="width:625px;float:right;">
<div id="submenu">Clique e assista ao vídeo, apenas um de cada vez ou não será concedido Coins.</div>
                    <script language="javascript">
			eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('6 1z(W,o){4.8("3").e.c=\'i\';$("#3").2(\'1y E...\');$.1f({1h:"1b",h:"17/18/19.x?1x=1A",1g:"1B="+W+"&1w="+o,1m:6(q){$("#3").2(q)}});F(o);p()}6 1E(){u.1u.p()}5 9;5 z;5 7;5 1k;5 f;5 g;5 B;6 1p(h,V,o,w,S){d(4.v.1r("t")>=0){$("#k").2(\'\');$("#n").2(\'\');4.8("3").e.c=\'i\';$("#3").2(\'r m 14 O a J 16 G K L A N M Q...P I 10 1c\')}j{$("#n").2(\'1t 1v 1s \');4.8("3").e.c=\'1q\';9=u.A(h,V,"1L=1O,1N=1F");7=w;z=o;g=S;B=h;5 b=1P 1Q();b.X(b.Y()+(15*l));4.v="t=11; Z="+b.R();s("y()",l)}}6 y(){d(7>1){7=7-1;$("#k").2(7);d(9.T){$("#k").2(\'\');$("#n").2(\'\');4.8("3").e.c=\'i\';$("#3").2(\'r m T 1d u...\');b.X(b.Y()+(1*1I));4.v="t=11; Z="+b.R();12 13}j d(f>7){$("#k").2(\'\');$("#n").2(\'\');4.8("3").e.c=\'i\';$("#3").2(\'r m 14 O a J 16 G K L A N M Q...P I 10 1c\');9.1j();7=w}j{s("y()",l)}}j{d(9){9.1j();1k=0}$("#n").2(\'\');$("#k").2(\'\');s("1a(B, z, g)",l)}}6 1o(1l){f=1l;d(f>1){f=f-1;s("1o()",l)}j{f=0}}6 1a(h,C,1e){d(!9||7>1){4.8("3").e.c=\'i\';$("#3").2(\'r m 1G H 1H E...\')}j{4.8("3").e.c=\'i\';$("#3").2(\'1C m H 1d E....\');5 1n=C;5 g=1e;$.1f({1h:"1b",h:"17/18/19.x",1g:"1K="+1n+"&g="+g,1m:6(q){$("#3").2(q)}});$("#k").2(\'\');F(C);p()}}6 F(1i){5 D=4.8(1i);D.1D.1J(D);12 13}6 p(){$("#U").1M("U.x")}',62,115,'||html|Hint|document|var|function|timer|getElementById|myWindow||date|display|if|style|checker|userid|url|block|else|seconds|1000|you|text|id|reload|msg|Seems|setTimeout|activewindow|window|cookie|newtimer|php|start|urlinplay|open|siteurl|nid|elem|Video|removeElement|or|viewed|and|Window|trying|to|than|more|have|Refresh|one|toGMTString|uid|closed|header|title|str|setTime|getTime|expires|try|yes|return|false|already||Open|plugins|yt|complete|checkWin|POST|again|the|did|ajax|data|type|childDiv|close|finished|tamount|success|response|timerchecker|openWin|none|indexOf|por|Por favor|location|aguarde|him|step|Skipping|skipuser|skip|me|Verifying|parentNode|refreshpage|700|never|this|100|removeChild|site|width|load|height|1100|new|Date'.split('|'),0,{}))

            </script>

			            <div align="center"><font id="text" size="3" color="black"></font> <font id="seconds"size="5" color="red"> </font></div>
			<div id="Hint" class="hint"></div>
            <div id="boxes">
                	
                    					<div class="xchangebox" id="echo $site2">
					                        <? echo $site2->title;?><br/>
                        <!--<a href="javascript:void(0);" class="button" onclick="openWin(<a href="xchange.php?p=yt&a=skip&id=<? echo $site2->id;?>" style="color:blue"> Pular este vídeo </a>)&nbsp;(<a href="report.php?id=<? echo $site2->id;?>" target="_blank"> Reportar Problema e ganhar 10 coins </a>),timerchecker('');;">Watch Video</a> -->
						<a href="javascript:void(0);" class="button" onclick="openWin('http://www.youtube.com/v/<? echo $url;?>','<? echo $site2->title;?>','47220','40','100447'),timerchecker('35');;">Assistir Vídeo</a>

						<br/>                                   
						                        <div class="points" id="<? echo $site2->id;?>points">Coins: <b><? echo $site2->cpc;?></b></div>
                        (<a href="xchange.php?p=yt&a=skip&id=<? echo $site2->id;?>" style="color:blue"> Pular este vídeo </a>)&nbsp;(<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>
 
                    	
 
                    	

                    </div><input onclick='refreshpage();' class="refresh" type='button' value='Mais Vídeos'>
			
			<br>
			<br/>
</div> 
					    

</body>
</html>
	

  

 

Visualizar em nova janela.jpg

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148849
    • Total Posts
      644846
×
×
  • Create New...