Показать сообщение отдельно
  #1 (permalink)  
Старый 18.12.2014, 18:03
Новичок на форуме
Отправить личное сообщение для Заглянувший Посмотреть профиль Найти все сообщения от Заглянувший
 
Регистрация: 16.07.2011
Сообщений: 4

Букмарклет для скачивания с youtube.com
Здравствуйте)
Вариант без плагина к браузеру, сторонней программы или сайта, видео скачать в максимальном доступном качестве (1080)

var adapfmts=[],video,videosize,videoclen,videourl,audio,audioclen,audiourl,filetitle,fileclen;

adapfmts=ytplayer.config.args.adaptive_fmts.split(",");
video=adapfmts[0].split("\u0026");
for (var i=0; i<=video.length-1; i++){
	if(/size=\d/.test(video[i])){videosize=/size=\d{1,4}x(\d{1,4})/g.exec(video[i])[1];};
	if(/clen=\d/.test(video[i])){videoclen=/clen=(\d+)/g.exec(video[i])[1]*1;};
	if(/url=http/.test(video[i])){videourl=decodeURIComponent(/url=(.*)/g.exec(video[i])[1]);};
	};

audio=adapfmts[adapfmts.length-2].split("\u0026");
for (var j=0; j<=audio.length-1; j++){
	if(/clen=\d/.test(audio[j])){audioclen=/clen=(\d+)/g.exec(audio[j])[1]*1;};
	if(/url=http/.test(audio[j])){audiourl=decodeURIComponent(/url=(.*)/g.exec(audio[j])[1]);};
	};

filetitle=ytplayer.config.args.title.replace(/\s/g,"+");
fileclen=((videoclen+audioclen)/1024/1024).toFixed(1);

document.getElementById("header").innerHTML="<center><a href='"+videourl+"'>"+videosize+"</a> "+fileclen+" Мб "+"<a href='"+audiourl+"'>audio</a></center>";


Скрипт работает, но парочка вопросов:
1 Можно ли заставить googlevideo.com отдавать файлы с другим именем, а не “videoplayback”. Пробовал в конце ссылки добавлять &title= не помогло.
2 Может свои варианты есть или этот как-нибудь переделать?

-----------
Как соединить видео и аудио.
В папку поместить файлы: video, audio, ffmpeg.exe (например, отсюда), output.bat
Содержимое output.bat:
Код:
ffmpeg -i video -i audio -vcodec copy -acodec copy -map 0 -map 1 output.mp4
del video audio
-----------
Букмарклет
javascript:(function(){var adapfmts=[],video,videosize,videoclen,videourl,audio,audioclen,audiourl,filetitle,fileclen;adapfmts=ytplayer.config.args.adaptive_fmts.split(",");video=adapfmts[0].split("\u0026");for(var i=0;i<=video.length-1;i++){if(/size=\d/.test(video[i])){videosize=/size=\d{1,4}x(\d{1,4})/g.exec(video[i])[1];};if(/clen=\d/.test(video[i])){videoclen=/clen=(\d+)/g.exec(video[i])[1]*1;};if(/url=http/.test(video[i])){videourl=decodeURIComponent(/url=(.*)/g.exec(video[i])[1]);};};audio=adapfmts[adapfmts.length-2].split("\u0026");for(var j=0;j<=audio.length-1;j++){if(/clen=\d/.test(audio[j])){audioclen=/clen=(\d+)/g.exec(audio[j])[1]*1;};if(/url=http/.test(audio[j])){audiourl=decodeURIComponent(/url=(.*)/g.exec(audio[j])[1]);};};filetitle=ytplayer.config.args.title.replace(/\s/g,"+");fileclen=((videoclen+audioclen)/1024/1024).toFixed(1);document.getElementById("header").innerHTML="<center><a href='"+videourl+"'>"+videosize+"</a> "+fileclen+" Мб "+"<a href='"+audiourl+"'>audio</a></center>";})()


Ответить с цитированием