2010-07-22 178 views
26

Ben youtube video URL ve indirme alan bir program yazdım o
Yukarı bugün yaptım bu:
"/ get_video_info video_id = ID?" Dan gibi 1. olsun videosu "belirteç":Youtube video indir URL

istemek suretiyle
http://www.youtube.com/get_video_info?video_id=jN0nWjvzeNc 

2. video İndir "?/get_video video_id = ID & t = JETONU & Fmt = FORMAT_ID" gibi:

http://www.youtube.com/get_video?video_id=jN0nWjvzeNc&t=vjVQa1PpcFMgAK0HB1VRbinpVOwm29eGugPh3fBi6Dg%3D&fmt=18 

Ama bu anym çalışmıyor cevher!
Yeni indirme URL'si nedir?

Teşekkür

+0

Bu sorunu yaşıyorum, mobil youtube'yu etkilemiyor gibi görünüyor, ancak mobil youtube'dan indirilecek URL’yi bilmiyorum. – Leg10n

+0

Bu API'yi kontrol etmek isteyebilirsiniz: https://weibomiaopai.com/download-video-parser.php –

cevap

10

URL'nin sonuna &asv=2 ekleyin.

+0

Merhaba, Çok teşekkür ederim, işe yarıyor, Ama: "asv = 3" denedim (tersine getirildikçe youtube player actionscript kodu) ama işe yaramadı! ama senin işlerin. teşekkürler – RYN

+0

& asv = 2 gömülü oynatıcıdan ters mühendislik yapıldı. Neden işe yaramadığına dair hiçbir fikrim yok, ama işe yaradı: D – rossy

+0

, "asv = 3" download linki ekleyerek telif hakkıyla korunan içerik nedeniyle oluşturuldu. Telif hakkıyla korunan içeriğiniz varsa, "asv = 3" seçeneğini kullanmanız gerekir. –

13

Aslında video projesini youtube'dan indirirken benzer bir proje üzerinde çalışıyorum. Get_video'un Youtube tarafından engellenebileceğini buldum. get_video kullanmamak yerine, get_video_info'dan alınan video bilgisini kullanıyorum ve video dosyasını url almak için ayıkladım.

get_video_info içinde, url_encoded_fmt_stream_map vardır. Kodladıktan sonra, her videonun farklı biçimdeki URL ve imza değerini bulabilirsiniz. Yani dosya url'si [url value] + '& signature =' + [sig value] şeklindedir.

Ayrıca, aşağıdaki yöntemi benimkiyle aynı yöntemi kullanarak buluyorum. Umarım size yardımcı olabilir. Eğer youtube video dosyasını indirirken için, süreci göstermek için benim tarafımdan yazılmış bir küçük bir programı vardır nasıl ilgileniyorsanız

Can't Download from youtube

. Onu kullanmakta özgürsünüz.

https://github.com/johnny0614/YoutubeVideoDownload

+0

Github'daki demleniniz artık çalışmıyor ...? Ben YoutubeVideoDownload.py [http://www.youtube.com/watch?v=U3VdT3HEzKE](http://www.youtube.com/watch?v=U3VdT3HEzKE) mp4 – hwhm

+0

@yujohnnyzhou ile denedim Farklı video türlerinin seçilmesi için çoklu satırlarla görüntülemek yerine tek bir indirme indirme çubuğu ile birlikte etkileşimli bir indirme modu. Lütfen github sayfanıza bakın. – Searock

+0

http://www.mediacollege.com/video/internet/youtube/download.html –

9

Yalnızca

http://www.youtube.com/get_video_info?video_id=jN0nWjvzeNc

PHP youtube video akışı için küçük bir komut dosyası yapılmış kullanarak doğrudan akışı alabilirsiniz. Komut dosyasının video dosyasını nasıl aldığını görün.

<?php 
@set_time_limit(0); 
$id = $_GET['id']; //The youtube video ID 
$type = $_GET['type']; //the MIME type of the video 

parse_str(file_get_contents('http://www.youtube.com/get_video_info?video_id='.$id),$info); 
$streams = explode(',',$info['url_encoded_fmt_stream_map']); 

foreach($streams as $stream){ 
    parse_str($stream,$real_stream); 
    $stype = $real_stream['type']; 
    if(strpos($real_stream['type'],';') !== false){ 
     $tmp = explode(';',$real_stream['type']); 
     $stype = $tmp[0]; 
     unset($tmp); 
    } 
    if($stype == $type && ($real_stream['quality'] == 'large' || $real_stream['quality'] == 'medium' || $real_stream['quality'] == 'small')){ 
     header('Content-type: '.$stype); 
     header('Transfer-encoding: chunked'); 
     @readfile($real_stream['url'].'&signature='.$real_stream['sig']); //Change here to do other things such as save the file to the filesystem etc. 
     ob_flush(); 
     flush(); 
     break; 
    } 
} 
?> 

Çalışma tanıtımına bakın here. umuyorum ki bu sana yardım edebilir.

+3

demo çalışmıyor – opengrid

+0

@opengrid Bu web bilgisayarım hakkında. Daha sonra başka bir web bilgisayarını deneyeceğim. – Licson

+0

Demo, localhost'umda mükemmel çalışıyor .. teşekkürler:) –

2

Son kez YouTube videosunu indirmek için bozuk Chrome uzantılarından birini düzeltmek için çalışıyordum. Komut dosyasını değiştirerek düzeltdim.

(JavaScript)

var links = new String(); 
var downlink = new String(); 
var has22 = new Boolean(); 
has22 = false; 
var Marked = false; 

var FMT_DATA = fmt_url_map;//This is html text that you have to grab. In case of extension it was readily available through:document.getElementsByTagName('script'); 

var StrSplitter1 = '%2C', StrSplitter2 = '%26', StrSplitter3 = '%3D'; 
if (FMT_DATA.indexOf(',') > -1) { //Found , 
    StrSplitter1 = ','; 
    StrSplitter2 = (FMT_DATA.indexOf('&') > -1) ? '&' : '\\u0026'; 
    StrSplitter3 = '='; 
} 

var videoURL = new Array(); 
var FMT_DATA_PACKET = new Array(); 
var FMT_DATA_PACKET = FMT_DATA.split(StrSplitter1); 

for (var i = 0; i < FMT_DATA_PACKET.length; i++) { 
    var FMT_DATA_FRAME = FMT_DATA_PACKET[i].split(StrSplitter2); 
    var FMT_DATA_DUEO = new Array(); 

    for (var j = 0; j < FMT_DATA_FRAME.length; j++) { 
     var pair = FMT_DATA_FRAME[j].split(StrSplitter3); 
     if (pair.length == 2) { 
      FMT_DATA_DUEO[pair[0]] = pair[1]; 
     } 
    } 

    var url = (FMT_DATA_DUEO['url']) ? FMT_DATA_DUEO['url'] : null; 

    if (url == null) continue; 
    url = unescape(unescape(url)).replace(/\\\//g, '/').replace(/\\u0026/g, '&'); 
    var itag = (FMT_DATA_DUEO['itag']) ? FMT_DATA_DUEO['itag'] : null; 
    var itag = (FMT_DATA_DUEO['itag']) ? FMT_DATA_DUEO['itag'] : null; 
    if (itag == null) continue; 
    var signature = (FMT_DATA_DUEO['sig']) ? FMT_DATA_DUEO['sig'] : null; 
    if (signature != null) { 
     url = url + "&signature=" + signature; 
    } 
    if (url.toLowerCase().indexOf('http') == 0) { // validate URL 

     if (itag == '5') { 
      links += '<a href="' + url + '&title=' + username + title + quality240 + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v240p">FLV (240p)</span></a>'; 
     } 
     if (itag == '18') { 
      links += '<a href="' + url + '&title=' + username + title + quality360 + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v360p">MP4 (360p)</span></a>'; 
     } 
     if (itag == '35') { 
      links += '<a href="' + url + '&title=' + username + title + quality480 + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v480p">FLV (480p)</span></a>'; 
     } 
     if (itag == '22') { 
      links += '<a href="' + url + '&title=' + username + title + quality720 + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v720p">MP4 HD (720p)</span></a>'; 
     } 
     if (itag == '37') { 
      links += ' <a href="' + url + '&title=' + username + title + quality1080 + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v1080p">MP4 HD (1080p)</span></a>'; 
     } 
     if (itag == '38') { 
      links += '<a href="' + url + '&title=' + username + title + quality4k + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v4k">MP4 HD (4K)</span></a>'; 
     } 

     FavVideo(); 
     videoURL[itag] = url; 
     console.log(itag); 
    } 
} 

Sen videoURL[itag] diziden ayrı video linki alabilirsiniz.

Uzantı here'dan indirilebilir.

Umarım bu birilerine yardımcı olur.Bu çalışma çözümü (06-Nisan-2013)

İlgili konular