2016-07-29 5 views
1

YouTubeのビデオをダウンロードするためのPHPスクリプトを作成しました.2つのボタンで動作し、最初のボタンはフォーマットの作成に使用され、2番目のボタンはダウンロードを開始します。 ここで私は、最初のボタン、2番目のボタンを押すと、自動的にその仕事をしたこと、およびシングルクリックでダウンロードを開始し、PHPスクリプトでクリックなしでURLを自動的に開く

は、そのボタン上の最初のボタンのコード、

<button id="videoDownloadButton" type="button" class="btn btn-info btn-lg"   data-toggle="modal" data-target="#myModal" onClick="downloadVideo();">MP4 Quality</button> 

Javssriptがされています... 。

function downloadVideo() { 
var videoID = player.getVideoData()['video_id'] 
document.getElementById("downloadFormatList").innerHTML="Please wait. Processing..."; 
if (window.XMLHttpRequest) { 
// code for IE7+, Firefox, Chrome, Opera, Safari 
xmlhttp3 = new XMLHttpRequest(); 
} else { // code for IE6, IE5 
xmlhttp3 = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp3.onreadystatechange=function() { 
if (xmlhttp3.readyState==4 && xmlhttp3.status==200) { 
     document.getElementById("downloadFormatList").innerHTML=xmlhttp3.responseText; 
} 
} 

//keyword = keyword.replace(/ /g, '%2B'); 
    xmlhttp3.open("GET","TMB/download.php?videoid="+videoID,true); 
xmlhttp3.send(); 

} 

とそのPHPスクリプトはHTMLタグである、第2のボタンを、仕事と生成されます後、

if(isset($_REQUEST['videoid'])) { 
$my_id = $_REQUEST['videoid']; 

if(strpos($my_id,"https://youtu.be/") !== false) 
{ 
$my_id = str_replace("https://youtu.be/","",$my_id); 
} 
} 


<?php 

//$my_video_info = 'http://www.youtube.com/get_video_info?&video_id='.   $my_id; 
$my_video_info = 'http://www.youtube.com/get_video_info?&video_id=' .  $my_id . '&asv=3&el=detailpage&hl=en_US'; //video details fix *1 
$my_video_info = curlGet($my_video_info); 
/* TODO: Check return from curl for status code */ 
$thumbnail_url = $title = $url_encoded_fmt_stream_map = $type = $url = ''; 
parse_str($my_video_info); 
?> 



<?php 
$my_title  = $title; 
$cleanedtitle = clean($title); 
if (isset($url_encoded_fmt_stream_map)) { 
    /* Now get the url_encoded_fmt_stream_map, and explode on comma */ 
    $my_formats_array = explode(',', $url_encoded_fmt_stream_map); 
if ($debug) { 
echo '<pre>'; 
print_r($my_formats_array); 
echo '</pre>'; 
} 
} else { 
echo '<p>No encoded format stream found.</p>'; 
echo '<p>Here is what we got from YouTube:</p>'; 
echo $my_video_info; 
} 
if (count($my_formats_array) == 0) { 
echo '<p>No format stream map found - was the video id correct?</p>'; 
exit; 
    } 
    /* create an array of available download formats */ 
    $avail_formats[] = ''; 
    $i    = 0; 
    $ipbits   = $ip = $itag = $sig = $quality = ''; 
    $expire   = time(); 
    foreach ($my_formats_array as $format) { 
parse_str($format); 
$avail_formats[$i]['itag'] = $itag; 
$avail_formats[$i]['quality'] = $quality; 
$type       = explode(';', $type); 
$avail_formats[$i]['type'] = $type[0]; 
$avail_formats[$i]['url']  = urldecode($url) . '&signature=' . $sig; 
parse_str(urldecode($url)); 
$avail_formats[$i]['expires'] = date("G:i:s T", $expire); 
$avail_formats[$i]['ipbits'] = $ipbits; 
$avail_formats[$i]['ip']  = $ip; 
$i++; 
} 


echo '<div class="format_list">'; 
echo '<br>'; 
echo '<table>'; 

/* now that we have the array, print the options */ 
for ($i = 0; $i < 1; $i++) { 
    if ($config['VideoLinkMode'] == 'direct' || $config['VideoLinkMode'] ==  'both') 
?> <tr><td><?php 
echo $avail_formats[$i]['type']; 
?></td> 

<td><small>(<?php 
    echo $avail_formats[$i]['quality']; 
?>)</small> </td> 
<td><small><span class="size"><?php 
    echo formatBytes(get_size($avail_formats[$i]['url'])); 
?></span></small> 
</td> 

<td><a href="<?php 
    echo $avail_formats[$i]['url']; 
?> '&title='<?php 
echo $cleanedtitle; 
?>'" class="downloadButton">Record Video</a></td> 
</tr> 
<?php 
} 
?> 

これは

<a href="<?php 
    echo $avail_formats[$i]['url']; 
?> '&title='<?php 
echo $cleanedtitle; 
?>'" class="downloadButton">Record Video</a> 
+0

の参照への参照ですこのDOM要素は、このボタンが存在し、そのボタンに対してクリックイベントを発生させることを意味します。混乱があれば、コードを書くことができます。 –

+0

ああ、私はあなたに感謝しています –

答えて

0

自動的に私がその仕事をしたしたいこと、試してボタンですこれは、2番目のボタンコードではなく、これです。

header('Location:' .$avail_formats[$i][url]. '&title=' .$cleanedtitle); 
+0

いいえ、それは動作していません... –

+0

今すぐ確認してください。そのおそらく動作します。 –

+0

nop ....、まだ動作していません –

0

対応するイベントが発生すると、.on()またはそのショートカットメソッドのいずれかが付加されたイベントハンドラがトリガされます。ただし、.trigger()メソッドを使用すると、手動で起動できます。 .triggerの呼び出しは()イベントは、ユーザーが自然に誘発された場合、彼らは次のようになり、同じ順序でハンドラを実行します。ここ

$("#foo").on("click", function() { 
    alert($(this).text()); 
}); 
if($("required-button").length>0){ 
$("#foo").trigger("click"); 
} 

がいるかどうかを確認JavaScriptを使用して、私のexample

+0

これをチェックさせてから、私はあなたに話します –

+0

どのように、私は、そのボタンで添付しますか? –

+0

ボタンにいくつかのIDを渡すと、それを得ることができます。 –

関連する問題