Проксирование ссылки средствами сервера

Алексей Теплов
На сайте с 30.12.2019
Offline
42
719

Здравствуйте!

У меня есть сервис по скачиванию видео с Ютуба, всё работает, всё хорошо... Но после 24 февраля, много видео выходят с блокировками РФ и РБ, решил сделать плеер с проксированной ссылкой, чтобы можно было смотреть видео онлайн в любой стране, без скачивания. Сcылку проксирую тупо на PHP командой readfile($url), заголовки не обрабатываю, перемотка соответственно работает только по загруженному фрагменту. Но это полбеды, PHP подвешивается частенько на сервере, приходиться перезапускать ручками... Я подозреваю что виновато в этом моё проксирование...

Подскажите, люди добрые, как можно проксировать ссылку через мой сервер? Вроде как бы NginX может проксировать, но я так и не разобрался как, в идеале бы конечно было бы круто чтоб команда header("X-Accel-Redirect: ".$url) работала с удалёнными файлами... Можно конечно брать ссылки из кеша сервера, но вот только далеко не все видео есть в кеше, многие приходят именно смотреть видео или скачивают по прямым ссылкам, видел  это в вебвизоре.

Вот как это работает сейчас с заблокированными видео https://save4k.com/get.php?url=https://youtu.be/HgrC_h8-2FM


lutskboy
На сайте с 22.11.2013
Offline
177
#1

интересно как вытаскивают ссылку на savefrom.net 

там сразу получаем прямую ссылку на видео https://rr17---sn-3c27sn7s.googlevideo.com/videoplayback ...

тогда и перемотка работала бы. а щас у меня неработает. даже по загруженному фрагменту

и по ip при большом траффике легко вас блоконуть

Алексей Теплов
На сайте с 30.12.2019
Offline
42
#2
lutskboy #:
интересно как вытаскивают ссылку на savefrom.net 
Так же как и у меня :) Кликните у меня на сайте в блоке "Прямые ссылки" кнопку "скачать"... Тот же принцип и на Саве Фроме и у меня в плеере.
lutskboy #:
а щас у меня неработает. даже по загруженному фрагменту

По загруженному работает, другое дело что в разных браузерах разные размеры буфера, в лисе большой буфер, клип сразу наполовину загружается, в хроме маленький буфер с небольшим опережением показа грузиться... У меня так по крайней мере...


Вот я про что и спрашиваю, как можно проксировать ссылку?
L
На сайте с 10.02.2015
Offline
233
#3
Попробуйте по первой ссылке под вашим постом
Алексей Теплов
На сайте с 30.12.2019
Offline
42
#4
livetv #:
Попробуйте по первой ссылке под вашим постом

Но там вроде про другое? Мне нужно проксировать внешнюю ссылку...

lutskboy
На сайте с 22.11.2013
Offline
177
#5
Алексей Теплов #:
как можно проксировать ссылку?

если она прямая. сразу на googlevideo, то зачем ее проксировать

Алексей Теплов
На сайте с 30.12.2019
Offline
42
#6
lutskboy #:

если она прямая. сразу на googlevideo, то зачем ее проксировать

А потому что ссылка привязана к IP, если ссылка получена под IP сервера, то и будет работать только для этого IP...

Все видео с блокировкой идут с привязкой по IP.

Алексей Теплов
На сайте с 30.12.2019
Offline
42
#7
У меня в плеер заряжаются 3 ссылки: первая в формате 1280 x 720, она почему то иногда не срабатывает, вторая ссылка - запасная  640 x 360 (работает всегда, если нет блокировки), ну и третья ссылка проксированная. Если не сработали первые две ссылки, значит видео блочное, тады запускаем под проксей...
lutskboy
На сайте с 22.11.2013
Offline
177
#8

ну через php вряд ли будет норм. даже если использовать curl

а через nginx может и лучше. но как это сделать? там нету постоянного адреса. под домен всегда другой

плюс скорее всего будут проблемы с сертификатом но это не точно.

плюс будет всегда один ip, а значит могут блоконуть . 

если что то придумаете, найдете, отпишите в личку.  тоже интересует такой вопрос

lutskboy
На сайте с 22.11.2013
Offline
177
#9

вот для динамического прокси интересные решения

https://stackoverflow.com/questions/5743609/dynamic-proxy-pass-to-var-with-nginx-1-0

искал по запросу nginx proxy dynamic

Dynamic proxy_pass to $var with nginx 1.0
Dynamic proxy_pass to $var with nginx 1.0
  • 2011.04.21
  • Sebastian Heuer Sebastian Heuer 972 1 1 gold badge 10 10 silver badges 17 17 bronze badges
  • stackoverflow.com
I am trying to proxy a request to different targets depending on an environment variable. My approach was to put the target url into the custom variable $target and give this to proxy_pass. But using a variable with proxy_pass doesn't...
Алексей Теплов
На сайте с 30.12.2019
Offline
42
#10

Честно сказать, я так и не понял как это работает... Но всё равно большое спасибо! Вы единственный кто пытается мне помочь!

Я пока на сайте сделал по другому. Если есть видео в кеше сервера, то 3 ссылкой ставлю её, если в кеше пока нет подходящей ссылки, то ставлю ссылку на скрипт, который по быстрому скачивает видео и передаёт его на раздачу NginX. На сервер юзаю качалку Ария2 с максимальным количеством потоков, скачивает практически мгновенно. Так что когда нажали "плей" в плеере, буквально через секунду пошла загрузка видео... Ну и приятный бонус, работает перемотка в плеере и перестал отваливаться PHP!

Конечно проксирование было бы поинтересней, тем более что у меня остались ссылки для скачивания через проксирование на PHP... Попытаюсь разобраться с вашим примером, спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий