Pull to refresh

Comments 80

Формат частенько меняется, будьте готовы обновлять своё приложение раз в 2 месяца. А то и чаще.
Посмотрел в changelog консольной утилитки clive (на perl) проблемы связанные с парсингом:
Date: 2011-08-04
Adapt to youtube.com changes
Date: 2011-03-05
Youtube: Fix video ID parsing (#10)
Date: 2010-12-11
Fix Youtube: Unknown error (http/404) [#1]
Всё не так печально (:
Тогда, в 2006-м [...] я тогда не знал, что ютуб это творение великого и ужасно доброго Гугла.
Само собой, потому что Гугл купил (а не сотворил) Youtube только в ноябре 2006.
> o-o.preferred.uarnet-kbp1.v15.lscache1.c.youtube.com

Кто-нибудь понимает каким образом в YouTube организована инфраструктура DNS-серверов и по какому алгоритму в ней выделяются ноды?
Изначально видео лежит на сервере (или нескольких в том же регионе), где его загрузил пользователь, потом, при большом спросе распрострянется по другим регионам, оседая на кеширющих локальных серверах.
Вопрос в том, по какому принципу разворачиваются кеширующие сервера, и как поддерживается эта инфраструктура, когда каждая DNS-зона имеет разные политики именования — где-то это «uarnet-kbp1», а где-то «o-o».
есть Google global cache programm. по этой программе они могут выделить локальный кеш при достижении некоторых условий. в локальный кэш анонсируются маршруты локальных пользователей. этим пользователям выдаются правильные ссылки на контент, который есть в кэше.
Лично я не вижу смысла и не помню когда последний раз была необходимость скачать ролик с YouTube.
Пожалуйста — у вас «ночная безлимитка». Наступает ночь — вы ставите на загрузку ролики, на следующий день их смотрите.
Мобильный интернет не настолько быстрый, как хотелось бы. Поэтому дома с вечера — закачка роликом с YouTube, а утром — час в электричке/метро за просмотром очередной серии «Вредного Кино» или клипов.
Да вариантов навалом. Например, я с утра закачиваю какие-нибудь ролики на планшет, а затем смотрю их в метро по пути на работу.
Всё чаще и чаще с ютуба удаляются видео по разным причинам. Некоторые хотелось бы сохранить.
Самый легкий способ (даже не думал, что никто не будет упомянать):

добавляем буквы «ss» в начало ссылки/адреса Ютуб и перенаправляемся на сервис специально предназначенный для скачивания видео с Ютуб (на всех доступных форматах).

примерно так:
ДО: www.youtube.com?some_video_mideo
ПОСЛЕ: www.ssyoutube.com?some_video_mideo
К сожалению, в этом случае ролики скачиваются не напрямую с YouTube, а через промежуточный сервер. Скорости это не добавляет.
Сверху — скриншот с работы. Снизу — из дома. Одно и то же видео качается через промежуточный сервер или напрямую в зависимости от айпишника пользователя?
UFO just landed and posted this here
Только что проверил. Дома всё нормально. А на работе качает с savefrom. Никаких header location. Просто с сервера с nginx. Это показывает и wireshark и айпишник сервера, с которого качается явно не ютубовский. Да и скорость маленькая.
Главено ж не скорость, а возможность оффлайн просмотра. а это самый простой способ чем самому писать скрипт-парсер :)
Хм, а я просто поставил minitube, чтобы скачивать с тытрубы ролики.
Как-то сложно, достаточно открыть страницу с видео, переключить на нужное разрешение и посмотреть во вкладке Developer Tools -> Network (Safari, Chrome) адрес, который упрямо продолжает загружаться, хотя вся страница уже готова. Скопировать его и скормить, например curl. Ну это если не надо скачивать видео в промышленных масштабах.
Не выйдет. Там при запросе этого самого файла передаются специальные кукисы и заголовки, без наличия/правильности которых сервер ничего не отдаст. Об этом и статья, в общем-то
Видимо, мы с разных ютубов качаем =) У меня это прокатывало с абсолютно всеми сайтами, где выкладывается видео.
В 2010
прокатывало без
elif type == 'youtube':
		system("notify-send -i info -t 1000 Сохраняю '"+urllib.unquote(title)+"' &")
		video = 'http://youtube.com/get_video.php?video_id='+video+'\\&t=$(curl -s http://www.youtube.com/watch?v='+video+' | sed -n \'s/.*, "t": "\\([^"]*\\)", .*/\\1/p\')';
		system("wget -O '/home/user/"+title+".flv' -c "+video+" &")
Так куки за вас браузеры отправляют. А заголовков там действительно нет. Я тоже пользуюсь таким способом скачивания видео.
BlackTheMad говорил не о браузере, он предложил через curl качать. А без этих самых кукисов точно ничего не выйдет
Хочется так же заметить, что ссылка на скачивание видео, которую мы получаем, привязывается к IP клиента.
Соответственно если мы делаем сервис по скачиванию видео, то полученные ссылки пользователям мы отдать не сможем, а трафик придётся перегонять через свой сервер.
Что бы отдавать пользователю ссылки надо получать их у него через flash или java.
Из всех сервисов (какие пробовал) для скачивания видео больше всего понравился savefrom.net, там же расширение для firefox, которое добавляет кнопочку на страницу.
UFO just landed and posted this here
Чё-то я всю жизнь качал с ютуб просто через копируя ссылку на самый большой файл из Activity Сафари и вставляя её в Downloads, не ожидал, что об этом можно такой большой пост написать :)


Рассказал бы лучше кто, как качать rtmp-потоки с livestream.com :(
UFO just landed and posted this here
UFO just landed and posted this here
Есть изрядное количество спец. программ. Хорошие — платные. Я вот разрабатываю одну из таких. Суть — в сниффинге и постпроцессинге трафика.
Разумеется я пробовал, штук шесть наверное разных: только пара (jaksta и ещё какая-то под вин) смогли вообще обнаружить поток с ливстрима, но качали где-то по минуте-полторы и либо теряли поток, либо начинали писать в новые файлы с ошибками :( С другими потоками не возникало таких проблем
У RTMP есть пара хитрых модификаций, не все их ловят. Завтра буду на работе — проверю как мой софт ловит видео с этого сервака. Проверю — отпишусь.
А как называется ваш софт?
В захвате видео с этого сервака он не поможет (см. коммент ниже), так что и пиариться смысла нет.
Вы бы все же не могли мне в приват написать название? Просто я вообще интересуюсь подобным софтом.
Посмотрел на Ваш livestream.com — ну и немудрено, что его никто не ловит :)
Там используется RTMPT (инкапсуляция RTMP в HTTP), при чём они этот протокол реализуют с намеренной ошибкой (неверно нумеруют пакеты). Их плеер заточен под понимание этой самой неверной нумерации — а вот программы, которые ловят RTMP (даже такие, которые понимают RTMPT, как моя) всё равно не понимают поток из-за неверной нумерации пакетов.

В общем, ловилку этого трафика тоже можно написать, но она нужна индивидуальная, специально под этот сервак — а с этого никакого профита, так что вряд ли кто-то будет заниматься.
Спасибо большое за пояснение! Пичалька, буду писать видео с экрана.
Я всегда буду смотреть в какой вкладке пишу комментарий.
Я не думаю что скачивание видео с ютуба является не законным. Например вот эта статья подтверждает мою точку зрения: habrahabr.ru/blogs/youtube/49543/

Кроме того существует очень много утилит/сервисов для скачивания роликов. Просто для андроида я пока не видел и решил заполнить эту нишу.
Вы не первый. Их просто с завидной регулярностью удаляют из маркета.
Возможно… При создании приложения я руководствовался логикой что например плагин для файрфокса существует и его не запрещают для использования
Для android OS таких сервисов предостаточно.
один
два
три
четыре
Так как такие сервисы нарушают правила пользования сервисом youtube, найти в маркете сложно
Один — это и есть мое приложение ))
пинка мне за то, что не сравнил кто автор этой статьи и автор приложения на market.
есть вероятность, что Ваше приложение в последствие будет удалено с маркета
UFO just landed and posted this here
Не понимаю, зачем сервис использует джаву? На сколько помню, раньше он без нее вполне себе работал.
Что бы ссылки были для клиента, а не для сервера.
Firefox+Flashgot мой выбор. Думаю для остальных браузеров тоже есть что-то подобное.
Пользуюсь плагином DownloadHelper для Firefox, видит очень много форматов на ютубе

Я дополнением UnPlug для FF.

В панели дополнений 1 клик на иконку.

В открытом окошке все доступные видео файлы:
1) Открыть в новом окне/вкладке (удобно для флэш игр);
2) Скачать (в любом доступном качестве);
3) Скопировать ссылку.
4) Отладчик.
тоже подкину ссылку — youtube-dl консольная утилита написанная на питоне, может выкачивать видео с десятка сервисов и с Youtube в том числе, неоднократно меня выручала.
Поддержу,
youtube-dl 'http://www.youtube.com/watch?v=APTh9uhf7WQ'
и всё, магия автора хоть и интересна, но уже все реализовано
К ней даже прикрутили скачивание плейлистов: оригинал от jordoncm и моя немного изменённая версия, работающая под Windows.
Иногда вся ценность статьи заключается вот в таких вот коментариях :)
Про youtube-dl знал, а вот про vimeo-dl — нет, и как раз вовремя.

Не подскажете ли ссылку на проект, или ещё лучше на deb?
Поиском нашел только линк на арчевский AUR и на пустой репо на github'е.
video-dl уже давно не работает и поддержка его прекращена.

Вместо него рекомендую использовать get_flash_videos (написано на перле), через поиск найдете.
Я, смеха ради, как-то автоматизировал закачки с популярных файлообменников, лениво мне было держать браузер включенным ради скачки одного файла. И каких только ухищрений файлообменников я видывал, и треэтапное формирование ссылки и хитрые подгрузки javascripts с параметрами и прочее… Всю логику можно было просматривать плагином Firefox Httplive и через полчаса готовый скрипт качал wget'ом нужный файл.
Раньше пользовался 3outube — удобство в замене одной буквы в адресной строке, но сейчас почему-то не работает…
Почитал комментарии. Похоже, что только я пользуюсь дедовским способом — поиск .mp4 файлов в кэше браузера с помощью Windows Search. У меня настроен шаблон поиска, что-то типа виртуальной папки. Примеры тут: www.box.com/s/7aztxplzprnactim3k9s
Хм, IE? Остальные же браузеры меняют имя файла и расширения %(
Да, там такие условия поиска не сработают. Но можно искать по размеру и дате.
Я как то таким вопросом не задумывался ни разу, сколько надо было скачать DM спасал. Ну ни раз упроблем не встречал и тем более танцов с бубном.
Можно использовать FreeFileSync, утилиту, которая умеет копировать в том числе и открытые приложениями файлы, через Volume Shadow Copy. Ролик, проигрывающийся на youtube и уже полностью оказавшийся в кеше, например IE, находится в папке TEMP с именем fl*.tmp.
Именно его и нужно копировать при помощи FreeFileSync. Вполне надежное решение, не зависящее от кода youtube.
С Youtube очень просто скачивать, я использую для своих нужд youtube-dl, как уже указано выше в одном из комментариев, у него простой интерфейс и надежно работает.

С RuTube немного сложнее, но там rtmpdump спасает ситуацию.

Вообще удивлен, почему Youtube ссылки на свои файлы даже не защищает от хотлинкинга, каналы наверное огромные, не экономят.
кто-то может подсказать как скачать живую трансляцию youtube live stream нужно сохранить локально в файл
нашел утилиту rtmpdump.exe, но как найти rtmp-ютуб-лайв-стрима? коректен ли этот пусть, или есть проще?
нашел прекрасную утилиту youtube-dl
вопрос закрыт.
Sign up to leave a comment.

Articles