Тема: Получение http ссылки с youtube
Тема создана для перенесения вопросов по http ссылкам с youtube от Рома35.
Вы тут как гость.
Неофициальный форум DLNA Home Media Server → Coding → Получение http ссылки с youtube
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Тема создана для перенесения вопросов по http ссылкам с youtube от Рома35.
Ютюб стал возвращать ссылки прмые как
https://r4---sn-hxb54vo-304l.googlevide … back?fexp=
вместо
http://r4---sn-hxb54vo-304l.googlevideo … back?fexp=
причём это и в браузерах заметил и в утилитах.
И HMS не показывает такие прямые ссылки, транскод невозможён. Может можно как то куда то чего то вставить, чтоб заработало? Подкасты не советуйте, у меня подкасты не работают, только прямая http ссылка работает.
Ютюб стал возвращать ссылки прмые как
https://r4---sn-hxb54vo-304l.googlevide … back?fexp=
вместо
http://r4---sn-hxb54vo-304l.googlevideo … back?fexp=
причём это и в браузерах заметил и в утилитах.
И HMS не показывает такие прямые ссылки, транскод невозможён. Может можно как то куда то чего то вставить, чтоб заработало? Подкасты не советуйте, у меня подкасты не работают, только прямая http ссылка работает.
Не смог найти хорошего решения.
Ютуб вообще делает что хочет. И в последнее время всё меняется. Там даже дешифровка подписи постоянно стала меняться (используется на лицензионных видео), поэтому я и вынес скрипт получения ссылки отдельно на свой ресурс, чтобы было проще и вести базу данных алгоритмов дешифровки.
Я тут чего только не пробовал с получением ссылки, но остановился на том, что просто данные брать с загруженной страницы которая youtube.com/watch?v=. Оттуда со страницы надёжнее всего получить ссылку. Но оттуда, как правило, как вы и заметили возвращается https.
Хотя могут быть и обычные. Например
https://hms.lostcut.net/youtube/g.php?v … ink_only=1
возвращает обычную http ссылку.
Я попробовал и другим способом, например вот список ссылок по видео (смотреть лучше ответ по Cntrl-U):
https://hms.lostcut.net/youtube/g.php?v … 1&hr=1
Там мы видим, что везде https. Проверил, а что будет в http://youtube.com/embed/DXgkSy5ZHq4 и, о чудо, всё видео прошло через http! (контролировал сниффером)
по ссылке http://www.youtube.com/get_video_info?h … XgkSy5ZHq4 получаем полноценный ответ, где всё без https.
Для наглядности и простоты проверки написал короткий php скрипт, который делает такой запрос и выводит результат в удобном виде:
https://hms.lostcut.net/youtube/video_i … XgkSy5ZHq4
Но не тут-то было. Натыкаемся на видео http://www.youtube.com/embed/PewE4ZctcmU и по https://hms.lostcut.net/youtube/video_i … ewE4ZctcmU - видим облом. Хотя обычная ссылка через сайт нормально получается, правда https.
Так что даже не знаю что и посоветовать. Пока ответ - никак.
А можно поинтересоваться, почему только прямые ссылки? Слабый проц для транскодирования?
Слабый, да. И с прокруткой проблемы, а это главное. Причём заметил, что какое то время: часы, день либо несколько дней идут все ссылки http, а затем снова https. С вашими ссылками поэкспериментирую.
Может всё-таки тогда подумать о ремуксе? Т.е. не полноценном транскодировании, а чисто потоки как есть берутся и засовываются в контейнер - перекодировка на самом деле не идёт и поэтому не нагружает проц. Но через себя программа поток будет пропускать и отдавать уже телеку.
Тогда останется решить с перемоткой. При перемотке в скрипте тоже появляется значение mpStartTime (время от начала), которое, теоретически, можно использовать для получения ссылки на поток, спозиционированный через параметр Range.
Но это теоретически. Потому как у меня то и без этого норм срабатывает, поэтому нужно будет экспериментировать с другими вариантами.
Может всё-таки тогда подумать о ремуксе?
Нечто подобное вы мне уже делали, не прокатило. Но VLC, беря ссылку на ютюб, делает ссылку для себя уже как http:(это видно в его лог файле C:\Documents and Settings\user\Application Data\vlc\vlc-qt-interface.ini), как можно запустить VLC без собственно проигрывания файла, с целью только выцарапать прямую ссылку на ролик?
...
Но VLC, беря ссылку на ютюб, делает ссылку для себя уже как http:(это видно в его лог файле C:\Documents and Settings\user\Application Data\vlc\vlc-qt-interface.ini), как можно запустить VLC без собственно проигрывания файла, с целью только выцарапать прямую ссылку на ролик?
Только сегодня, прочитав, увидел что вы написали. Для меня было откровением то, что VLC понимает ссылки на youtube. Действительно умеет. Только если видео подписано зашифрованным signature, то такие видео он отказывается проигрывать. Это нормально.
Т.к. дешифровка singnature время от времени меняется и заложена в javascript код к плееру на html5 на странице youtube, то именно поэтому я вынес код получения ссылки на свой сервак и написал его на PHP (сделал что-то вроде API). Чтобы при смене алгоритма дешифровки поиск его выполнялся на сервере и запоминал их для каждого id html плеера. Если интересно, могу полностью рассказать как работает получение ссылки с youtube. Сам код скрипта на сервере можно посмотреть тут и разобраться как оно работает.
К чему я это всё, а к тому, что, т.к. мой скрипт лежит на серваке, который работает через https и запросы http перенаправляет на защищённый протокол, то и ответы приходят, как выяснилось, с https ссылками. А если такой скрипт расположить на домене, который работает на другом серваке только по протоколу http - то и ответы приходят с http ссылками! Для этого сделал поддомен с расположением на другом сервере и добавил туда эти скрипты получения ссылки.
Например, ссылка http://rus.lostcut.net/youtube/g.php?v= … ink_only=1 даст http ответ.
Спасибо, пашет. Теперь перестрою скрипт под тебя, а VLC оставлю как запасной.
Ещё бы добавить ссылку на другой формат: 360 mp4 либо если его нет , то 360 wbem
например:
http://rus.lostcut.net/youtube/g.php?v= … _only=1=18
а это ссылка на 720 mp4
http://rus.lostcut.net/youtube/g.php?v= … _only=1=22
Ещё бы добавить ссылку на другой формат: 360 mp4 либо если его нет , то 360 wbem
Для ограничения качества можно использовать такой параметр: max_height=360
Пример:
http://rus.lostcut.net/youtube/g.php?v= … height=360
Как там этот скрипт работает и какие параметры может принимать, можно посмотреть тут.
Дошло, как можно параметры применять.
Чудесный скрипт!!! Благодарность автору. Зарегистрировался что бы сказать это
koljasha, спасибо. Не стоит.
А где можно посмотреть пример прямой ссылки на видео youtube?
А где можно посмотреть пример прямой ссылки на видео youtube?
Не совсем понятно, что именно вы спрашиваете.
Пример прямой ссылки на видео можно посмотреть, если вы нажмёте на ссылку примера в сообщении выше.
Такие прямые ссылки всегда временные.
Опять https ссылку стало выдавать. И у vlc тоже.
Опять https ссылку стало выдавать. И у vlc тоже.
Это youtube сервис. И с этим вряд ли что-то можно сделать. Он это делает сам и принудительно. Не смог его ещё заставить отдавать http.
Здравствуйте. А есть ли возможность изменить вид ссылки в видеоплеере?
сейчас ссылка выглядит так https://r3---sn-xjpm-4g5e.googlevideo.com/......
хотелось бы как-то по другому чтобы робот поисковик ни каким образом не понял что видео пренадлежит гуглу
Здравствуйте. А есть ли возможность изменить вид ссылки в видеоплеере?
сейчас ссылка выглядит так htps://r3---sn-xjpm-4g5e.googlevideo.com/..
хотелось бы как-то по другому чтобы робот поисковик ни каким образом не понял что видео пренадлежит гуглу
Очень странный вопрос. Пауки поисковиков обычно сканируют сайты доступные в интернете. Для сайтов запрет лазить где не надо паукам есть другие методы: всякие robots.txt и hmtl теги <noindex> и прочее.
Но меня смущает другое. Ведь ссылки вида r3---sn-xjpm-4g5e.googlevideo.com - временные и живут ограниченное время. Зачем их хранить на сайте?
Но самое главное - вы только что попросили изменить ссылки, которые отдаёт гугл. Э... Вид ссылки в видеоплеере?
запрещать для роботов не нужно, нужно попробовать добиться вывода видео в поиске.
да ссылка временная, и каждый раз при открытии страницы скрипт вставляет в тэги плеера рабочую ссылку вида который указан выше
но такой вид ссылки не пойдет, робот не должен знать что видео спёрто с ютуба и вставлено в свой плеер
SmileSmile, не знаю что и как там у вас устроено, поэтому конкретных советов дать не могу.
Но можно попытаться сделать на своём сайте редирект (через rewrite в .htaccess или что там у вас есть). Т.е. ссылки на видео должны быть на свой сайт, но при обращении по специальной ссылке редиректить на нужное видео.
Или, например, залить скрипт videordrct.php, который будет вызываться с параметрами, в которых будет закодирована ссылка на youtube видео (хоть в Base64), а сам скрипт будет получать и раскодировать ссылку и отвечать с http заголовками location: <video url> - т.е. редиректить на само видео. Флеш-плеер будет перенаправляться на youtube, а ссылки будут как будто на ваш сайт.
Или, например, залить скрипт videordrct.php, который будет вызываться с параметрами, в которых будет закодирована ссылка на youtube видео (хоть в Base64), а сам скрипт будет получать и раскодировать ссылку и отвечать с http заголовками location: <video url> - т.е. редиректить на само видео. Флеш-плеер будет перенаправляться на youtube, а ссылки будут как будто на ваш сайт.
не работает так перекеширование происходит почему то и виснет. запрет кеширование тоже не помогает.
на основном сайте где скрипт затачивают под видеохостинге (сами знаете какой скрипт) там ютуб ретранслируется, то есть без ретрансляции ссылку видимо не зашифровать
не работает так перекеширование происходит почему то и виснет. запрет кеширование тоже не помогает.
на основном сайте где скрипт затачивают под видеохостинге (сами знаете какой скрипт) там ютуб ретранслируется, то есть без ретрансляции ссылку видимо не зашифровать
Я и в правду, искренне не понимаю на каком видео-хостинге и какой скрипт и что там ретранслируется. Зачем ретрансляция, если мы хоти отдать видео "как есть", мне не понятно.
Что за перекеширование тоже не понятно. Где что кешируется? И почему это мешает сделать redirect? Что у вас там происходит и как это всё выглядит - я могу только фантазировать. Но, боюсь, мои фантазии вряд ли приблизят к правильному ответу на ваш вопрос.
А где у вас что виснет? Флеш-плеер? Может ему MIME тип отдаваемого не нравится? Хотя при редиректе ему там всё равно должно быть. Я не знаю, какие там могут быть проблемы.
Пример ссылки на скрипт, которую можно вставить в VLC и он начнёт играть (потому что скрипт отдаст редирект на конкретное видео):
http://wonky.lostcut.net/g.php?v=ltqweZ … p;redirect
http://wonky.lostcut.net/g.php?v=ltqweZ … p;redirect
header данной ссылке к сожалению выдает google
скажите можно ли Location скрыть в headere?
SmileSmile, естественно. Это и есть редирект.
Думаете google делает запросы по всем ссылкам на внешние ресурсы на вашем сайте и анализирует headers?
Что значит "скрыть в headere"? Чтобы никто и никогда не узнал откуда тянется видео, но тянуться должно с youtube? Нахрена оно вам?
Думаете google делает запросы по всем ссылкам на внешние ресурсы на вашем сайте и анализирует headers?
могу только предполагать, если вдруг сделает по каким-то причинам то он увидит что видео принадлежит ютубу которое вставлено в сторонний плеер. и думаю что в гугле не дураки сидят и они предусмотрели данную возможность и просто забанят сайт или понизят в выдаче. но это только моё мнение
Что значит "скрыть в headere"?
например как здесь
http://demo.videoscript.biz/vk_video/demo.php
при проверки на данном сервисе http://www.bertal.ru/ следов ютуба нет
следов ютуба нет
Потому что видео тянется непосредственно с другого сервера (ретрансляция). Тут либо вы тянете видео с youtube, либо откуда-то ещё. Если уж совсем прятать - то только ретранслировать (гнать весь видео трафик через свой сервер). Т.е. в своём скрипте скачивать видео на свой сервер и его потом отдавать. Накладно это.
понятно
в uppod в платной версии шифрование ссылки происходит полностью и заголовки такой ссылки ни как не просмотришь, но это наверно уже космические технологии
Потому что видео тянется непосредственно с другого сервера (ретрансляция). Тут либо вы тянете видео с youtube, либо откуда-то ещё. Если уж совсем прятать - то только ретранслировать (гнать весь видео трафик через свой сервер). Т.е. в своём скрипте скачивать видео на свой сервер и его потом отдавать. Накладно это.
Добрый день и снова после блокировки пишу вам вопрос но уже с осторожностью, чтобы модераторы вновь не пустили под блок:-) опасное дело конечно. Итак вопрос заключается в этом, смотрите есть ссылка на ютуб с таким ид vFo6Z-cMFJc если я этот id вставляю в вашем примере https://hms.lostcut.net/youtube/g.php?v … ink_only=1 то мне выдается правильная рабочая ссылка, но когда я пытаюсь проделать это на своем сервере то мне выдается совсем иная ссылка которая при переходе по ней не работает. Скрипт скачивал ваш. Помогите решить проблему пожалуйста.
p/s ссылку на пример работы на моем сервере отправил вам в почту, не хочу рисковать второй раз.
na-socke.tk, немного объясню как работает скрипт g.php.
Кроме самого скрипта g.php, ему также нужны classes.php и возможность писать в тот же каталог в файл algorithms.ini.
https://github.com/WendyH/HMS-Youtube
Скрипт загружает html страницу с сайта youtube, смотрит, какая версия js скрипта там подгружается для формирования подписи (signature) ссылок на поток, которые ею защищены (обычно это видео, на которых установлены авторские права).
Ищет по id скрипта в файле algorithms.ini алгоритм шифровки, если не находит, то загружает этот javascript и пробует оттуда сформировать алгоритм. После чего записывает полученный алгоритм по id js-скрипта в файл algorithms.ini, чтобы в следующий раз не делать лишние запросы.
Так вот. Какие могут тут быть проблемы. Попробуйте удалить совсем файл algorithms.ini. После запуска g.php он должен создаться заново. Также возможно, что в этом файле есть неактуальные или неправильные пары id - алгоритм. Путь он заново их создаст.
Откуда брали исходник g.php? Отсюда с форума или с github?
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Неофициальный форум DLNA Home Media Server → Coding → Получение http ссылки с youtube