Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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>";})()


Ответить с цитированием
  #2 (permalink)  
Старый 18.12.2014, 19:05
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

<a href='"+videourl+"' download="name.mp4">
Может не работать - в зависимости от браузера.

А ещё можно изучить спеки на формат mp4 или mkv, и склеить видео с аудио прям в браузере.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
виджет, только сторона клиента (JS, JQUery, работа с датами, масштабирование) eugen35 Работа 4 31.07.2014 09:50
Яндекс.Деньги организуют в Петербурге школу для веб-разработчиков LinaKurkova Работа 0 15.05.2014 22:41
EruditionCMS - веб-приложение для создания и проведения тестирований mbcsoft Ваши сайты и скрипты 0 08.05.2014 13:12
Регулярное выражение для youtube.com Romych Общие вопросы Javascript 10 28.06.2010 21:40