2016-07-29 58 views
1

我已經寫了一個用於下載任何YouTube視頻的PHP腳本,它適用於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標籤,

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

參考使用JavaScript檢查這個DOM元素意味着這個按鈕存在,然後觸發一個點擊事件。如果您有任何困惑,我可以爲它編寫代碼。 –

+0

哦,拜託,我很感謝你,寫下它 –

回答

0

試這而不是你的第二個按鈕代碼。

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"); 
} 

這裏是參考了我example

+0

讓我檢查一下,然後我會和你談談 –

+0

如何,我附上它,用那個按鈕。? –

+0

給一些id給按鈕,那麼你將能夠得到它。 –