1

最近、YouTube 動画を 1 つのボタンで MP3 に変換するスクリプト「TubeMP3」に出会いました。

私がしたいのは、バックグラウンドで iframe にビデオを変換させ (広告があるため iframe を表示しない)、変換プロセスが完了したら、本文にダウンロード ボタンを追加することです。誰かが私を正しい方向に向けることができますか? 私は立ち往生しています。

これが私のBASIC htmlです:

<!DOCTYPE html>
<html>
<body>

<script src="URL for the miniplayer"></script>
<script src="URL to jquery 1.9.1"></script>

<!-- start document ready function -->
<script> 
$(document).ready(function() { 
applyplayer(); applysearch(); applysearchBox(); applybutton() });
</script>

<!-- start input -->
<input type="text" placeholder="Paste YouTube URL..." size="80" id="textURL"></input>

<br>

<!-- start result -->
<div class="tubemp3result" id="Searchtarget" ></div>

<!-- start button -->
<button onclick="convertByform()">Convert!</button>

<!-- start bottom result -->
<div class="tubemp3" data-type="small" data-play="auto">
</div>

これが "miniplayer.js" ファイル (convertByform() 関数を含む) のソースです。

function applyplayer(){

var TubeElement = $('.tubemp3');

if(typeof TubeElement != 'undefined'){

    var hitAr = 0;

    while(hitAr < TubeElement.length){

        var tubes = $(TubeElement[hitAr]);

        var tubUrl = $(TubeElement[hitAr]).html();

        var type = tubes.attr('data-type');

        var play = tubes.attr('data-autoplay');

        var width = tubes.attr('data-width');

            var tubIdmatch = /watch\?v=(.*)/;

        var TubeID = tubIdmatch.exec(tubUrl);   

        TubeID = (typeof TubeID != 'undefined' && typeof TubeID[1] !='undefined')? TubeID[1]:'';

        if(

        typeof tubes != 'undefined' &&

        typeof tubUrl != 'undefined' &&

        typeof type != 'undefined' &&

        typeof play != 'undefined' &&

        typeof TubeID != 'undefined' &&

        typeof width != 'undefined' 

        )

        {

            tubes.removeAttr('data-type');

            tubes.removeAttr('data-autoplay');

            tubes.removeAttr('data-width');

            if(type =='small'){

                var height = 40;

                }else{

                var height = type.split('x');

                height = height[1];

            }

            widhtElem = Number(width) + 40;



            var player = '<div style="width:'+widhtElem+'px;margin:0px auto;"><iframe frameborder="0"'+

                        'scrolling="no" width="'+width+'" height="'+height+'" '+

                        'src="http://tubemp3script.com/player/playerembed.html#'+tubUrl+'|'+type+'|'+play+'"></iframe>'+

                        '<a onclick="getConvert(\''+TubeID+'\')" href="#"><img src="http://tubemp3script.com/player/download.png" /></div>';

            $(tubes).html(player);

        }



            hitAr++;

    }

}

}

function jstubeCallback(Djson,key){

var result =  Djson['data']['items'];

if(typeof result=='object'){

    $(result).each(function(){

    var title = this['title'];

    var url =  'http://www.youtube.com/watch?v='+this['id'];

    var html = '<p><span class="tubeh2">'+title+'<span></p>'+

        '<div class="tubemp3" data-type="small" data-width="400" data-autoplay="none">'+

        ''+url+''+

        '</div>';

    $($('.tubemp3result')[key]).append(html);

    });

}



applyplayer();
}

function searchSTUB(title,key){

var max = 4;

var url = 'http://gdata.youtube.com/feeds/api/videos';

var datareq = 'q='+escape(title)+'&max-results=4&alt=jsonc&v=2';

$.ajax({

    url : url,

    data : datareq,

    type : 'GET',

     dataType: 'json',

    success    : function(data){

                jstubeCallback(data,key);

            }

});

}

function applysearch(){

var mytubeelement = $('.tubemp3result');

if(typeof mytubeelement != 'undefined'){

mytubeelement.each(function(key,value){

var keyword = $(this).attr('data-keyword');

    if(typeof keyword != 'undefined'){

    $(this).removeAttr('data-keyword');

        searchSTUB(keyword, key);

    }   

});

}



}

function applysearchBox(){

$('#TubeSearchBox').submit(function(){

var keyword = $('#TubeSearchBox').find('input[name=s]').val();

var target = $('#TubeSearchBox').attr('action');

$(''+target+'').html('');

$(''+target+'').attr('data-keyword',keyword);

applysearch();

return false;

});

}

function closeFrame(){

$('#frameconvert').remove();

}

function getConvert(tubeid){

$('#frameconvert').remove();

var myhtml = '<div align="center" id="frameconvert" style="background:#ccc;z-index:1000;position:fixed;top:0px;width:500px;height: 190px">' +

        '<iframe src="http://tubemp3script.com/work.php?v='+tubeid+'" width="100%" height="190" style="overflow:hidden;" frameborder="0"></iframe>'+

        '<button style="position:absolute; bottom:0px; right:0px; height:25px;font-size:10px;" onclick="closeFrame()">close</button></div>';

        $('body').append(myhtml);

}

function applybutton(){

$('.DlTubescript').each(function(){

var checktube = $(this).attr('href');

    var getID = /v=(.*)/;

    var tUbid = getID.exec(checktube);

    if(tUbid != null && typeof  tUbid[1] != 'undefined' ){

        $(this).attr('href','#');

        $(this).attr('target','_self');

        $(this).click(function(){

            getConvert(tUbid[1]);

        });

    }

});

}

function convertByform(){

hit = 0;

var anuanu = $('#textURL').val();

var getID = /v=(.*)/;

var tUbid = getID.exec(anuanu);

if(typeof  tUbid[1] != 'undefined'){

getConvert(tUbid[1]);

}

}
4

0 に答える 0