URL pobierania filmów z Youtube
Napisałem program, który pobiera adres URL filmu youtube i pobiera go
Up today I did this:
1. Pobierz wideo "token" z " / get_video_info?video_id = ID " like:
http://www.youtube.com/get_video_info?video_id=jN0nWjvzeNc
2. Pobierz film, żądając go z " / get_video?video_id= ID&t = TOKEN&fmt=FORMAT_ID " like:
http://www.youtube.com/get_video?video_id=jN0nWjvzeNc&t=vjVQa1PpcFMgAK0HB1VRbinpVOwm29eGugPh3fBi6Dg%3D&fmt=18
Ale to już nie działa!Jaki jest nowy adres URL pobierania?
Dzięki
4 answers
Dodaj &asv=2
na końcu adresu URL.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-22 01:33:49
Właściwie pracuję nad podobnym projektem, który pobiera plik wideo z youtube. Uważam, że get_video może być zablokowany przez Youtube. więc zamiast używać get_video., Używam informacji wideo pobranych z get_video_info i wyodrębnić go, aby uzyskać adres URL pliku wideo.
W get_video_info znajdują się url_encoded_fmt_stream_map. Po zakodowaniu można znaleźć adres url i wartość podpisu każdego filmu o innym formacie. Więc URL pliku jest jak [url wartość]+ ' & signature='+[wartość sig].
DODATKOWO znajduję następujący temat, który przy użyciu tej samej metody z moim. Mam nadzieję, że ci pomoże.
Jeśli jesteś zainteresowany, Jak pobrać plik wideo z youtube, istnieje mały program napisany przeze mnie, aby zademonstrować ten proces. Możesz z niego korzystać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:48
Możesz uzyskać strumień bezpośrednio używając tylko
Zrobiłem mały skrypt do przesyłania strumieniowego filmów z youtube w PHP. Zobacz jak skrypt pobiera plik wideo.
<?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;
}
}
?>
Zobacz demo robocze tutaj . Mam nadzieję, że to ci pomoże.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-20 08:19:17
Ostatnio pracowałem nad naprawą jednego z zepsutych rozszerzeń Chrome, aby pobrać wideo z YouTube. Naprawiłem to zmieniając część skryptu.
(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);
}
}
Możesz uzyskać osobny link wideo z tablicy videoURL[itag]
.
Rozszerzenie można pobrać z tutaj .
Mam nadzieję, że to komuś pomoże. Jest to rozwiązanie robocze (stan na 06-Apr-2013)Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-10 07:06:03