Tmdb proxy 404 ошибка

index.php

<?php
header('Access-Control-Allow-Origin: *');

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( "short_open_tag", 1 );


$uri = substr($_SERVER['REQUEST_URI'], 1);
$exp = explode('/', $uri);
$med = array_shift($exp);
$url = implode('/', $exp);

if($med == 'api'){
	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, false);
	curl_setopt($ch, CURLOPT_TIMEOUT,60);

	$html = curl_exec($ch);
	$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

	curl_close($ch);

	if($code == 200){
		header("HTTP/1.1 200 OK");

		echo $html;
	}
	else{
		header("HTTP/1.0 404 Not Found");
	}
}
elseif($med == 'img'){
	echo file_get_contents($url);
}
else{
	header("HTTP/1.0 404 Not Found");
}
?>

.htaccess

DirectoryIndex index.php

RewriteEngine On
RewriteBase /

ErrorDocument 404 /index.php
ErrorDocument 403 /index.php

RewriteCond %{REQUEST_FILENAME} !(index.php)
RewriteRule ^(.*)$ /index.php/$1

Пример изображений: http://domain.com/img/http://imagetmdb.cub.watch/http://image.tmdb.org/t/p/w200//1dCTKq9FkwO58EbcOdpZy1sYw71.jpg

Пример api http://domain.com/api/http://api.themoviedb.org/3/movie/top_rated?api_key=4ef0d7355d9ffb5151e987764708ce96&language=ru

А в чем смысл в index.php отдельно делать api и img?
Попробовал удалить лишнее и оставил все в таком виде:

<?php
header('Access-Control-Allow-Origin: *');

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( "short_open_tag", 1 );


$url = substr($_SERVER['REQUEST_URI'], 1);
$proxy = '192.168.0.100:3131';

	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_PROXY, $proxy);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, false);
	curl_setopt($ch, CURLOPT_TIMEOUT,60);

	$html = curl_exec($ch);
	$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

	curl_close($ch);

	if($code == 200){
		header("HTTP/1.1 200 OK");

		echo $html;
	}
	else{
		header("HTTP/1.0 404 Not Found");
	}
?>

Теперь не надо отдельно прописывать …/api и …/img
Вроде все работает. Или я что-то проглядел?

P.S.
Строки 12 и 15 нужны для того, чтобы запросы с лампы шли через классические прокси. В данном случае прокси локальный.

You need to include a movie_id value in the path part of the request URL, right? Like this:

var requestURL = "https://api.themoviedb.org/3/movie/"
  + movie_id + "/images?api_key=" + api_key +"&language=en-US&callback=?";

At least in the documentation cited in the question that’s what’s shown:

GET /movie/{movie_id}/images

Path Parameters

movie_id : integer

Example:

https://api.themoviedb.org/3/movie/{movie_id}/images?api_key=<<api_key>>

For example, to get JSON-formatted data for the images for the movie with the ID 9340:

https://api.themoviedb.org/3/movie/9340/images?api_key=<<api_key>>

You can confirm that works by testing with curl or whatever:

$ curl "https://api.themoviedb.org/3/movie/9340/images?api_key=<<api_key>>"

{
    "backdrops": [
        {
            "aspect_ratio": 1.777251184834123,
            "file_path": "/qKeyO9gXaaK0g87tvvqOPK1siwc.jpg",
            "height": 1688,
            "iso_639_1": null,
            "vote_average": 5.454545454545455,
            "vote_count": 3,
            "width": 3000
        },
        …

Recommend Projects

  • React photo

    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Visualization

    Some thing interesting about visualization, use data art

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    Tencent

    China tencent open source team.

Скачал на сайте tvbox.one

Запустил.

Добро пожаловать в приложение LampLampa

Добро пожаловать в приложение LampLampa

Выбрал русский язык.

Здесь пусто

Здесь пусто

Нажал на «Сменить источник источник CUB».

Список фильмов

Список фильмов

Есть названия фильмов, нет баннеров. Чтобы исправить идём в настройки.

Верхняя панель

Верхняя панель

Нажимаем на шестерёнку.

Настройки Lampa

Настройки Lampa

Выбираем пункт «Расширения».

Адрес плагина

Адрес плагина

Чтобы долго не писать адрес плагина, нажимаю «Возврат».

TMDB Proxy

TMDB Proxy

В популярных нахожу плагин «TMDB Proxy». Это позволит видеть баннеры.

Установить плагин

Установить плагин

Устанавливаю плагин.

Перезагрузка

Перезагрузка

Перезагружаю приложение Lampa.

Онлайн Мод

Онлайн Мод

Аналогично ставлю плагин «Онлайн Мод». Это позволит смотреть фильмы онлайн без загрузки.

Установленные плагины

Установленные плагины

Проверяю, все ли плагины установлены. Галочка, 200, Рабочий. Это то, что нам надо!

Главная CUB

Главная CUB

Проверяю главную страницу. С ресурса CUB загружены названия, при помощи плагина «TMDB Proxy» загружены баннеры.

Выбираю первый попавшийся фильм.

Проверка online

Проверка online

Треугольник в кружке говорит о том, что плагин «Онлайн Мод» работает.

Серии

Серии

Можно поменять балансер, если фильм не найден. Или уточнить поиск.

Просмотр через Media Player

Просмотр через Media Player

Всё работает! В чём у людей сложность, так и не понял. Всё делал с нуля. Даже без регистрации.

Если, что-то не понятно, пишите комментарии.


Также рекомендую статью «Лучшие сервисы и провайдеры IPTV».

Нет у меня стандартный Squid. Обрезать там что либо не получится.

Окей, тогда пример адреса, может можно будет проверить.

Не совсем понял: пример какого адреса?
У меня Squid поднят на http://proxy.domain.ru:3128
В настройках вбиваю этот адрес, запрос приходит, но впереди адреса стоит «/», на него мой Squid и ругается.

Тут речь-то не совсем про веб :)
Тут ведь отправляется запрос к прокси серверу.
Кроме того, у кого в качестве прокси стоит какой-нибудь http-сервер может в настройках добавить завершающий слеш.

Полноценный socket5 или другой протокол в лампе не работает. Только веб протокол, поэтому слеш обязательно.

Нет, никаких соксов, обычный прокси-сервер. Обычный GET запрос. Примерно так я себе представляю:
const http = require(«http»);

const options = {
host: «proxy»,
port: 8080,
path: «http://www.google.com»,
headers: {
Host: «www.google.com»
}
};

http.get(options, (res) => {
console.log(res);
res.pipe(process.stdout);
});

А что с вариантом описанным мною выше?
Ведущий «/» добавляется уже в скрипте. Что если сделать для обычных прокси в настройках «http://proxy.domain.ru:3128», а для тех кому нужен этот «/» дописать его в настройках «http://proxy.somian.ru/».
От Лампы я получаю корректный GET запрос, мешает его отработать только «/» перед http…
Можно увидеть кусок кода, где формируется запрос к прокси?

  • 👍1
  • 👍2

Думаю это и есть решение, а тем кому надо будут прописывать его вручную

Тупость никто не отменял)) Так и будут писать, прописал домен, а не чего не работает.

Ведущий «/» добавляется уже в скрипте.

Так устроены сервера, впереди всегда есть слеш.

  • 👎1

Вы на своем сервере хоть пробовали запустить без слеша?

Не понял вопрос. Что запустить на своём сервере?

Не понял вопрос. Что запустить на своём сервере?

Где стоит прокси сервер? Как к нему обратится? По какому адресу?

По какому адресу?

Как-то не хотелось бы светить свой прокси в отрытых источниках. А кусочек лога приводил в первом сообщении.

  • 👍1
  • 👎1

Хорошо, я понял.
Придётся поднимать nginx и настраивать его на работу в качестве прокси, вместо того чтобы использовать стандартный Squid.

Спасибо!

Не я тут диктую условия)) Диктует их javascript, а в javascript нету технических способов использовать прокси с логином и паролем, кроме как запрашивать тупо адрес и подставлять ему параметры другого адреса.

Я крайне слабо ориентируюсь в JS, но почему-то был уверен, что есть какой-то класс alaProxy, которому можно передать адрес прокси и строку адреса. Очевидно я ошибался.
Придётся огород городить :)

Не я тут диктую условия)) Диктует их javascript, а в javascript нету технических способов использовать прокси с логином и паролем, кроме как запрашивать тупо адрес и подставлять ему параметры другого адреса.

вроде что то подобие нашёл: на гитхабе
пример из stackoverflow

вроде что то подобие нашёл: на гитхабе

Это для node.js, а он серверный.

Других вариантов нету и не будет.

Я правильно понимаю, что вы свою версию прокси сделали с использованием PHP?

Да. Если надо, могу скинуть.

Да. Если надо, могу скинуть.

Да, было бы интересно посмотреть. Если напрямую с nginx не получится…

index.php

<?php
header('Access-Control-Allow-Origin: *');

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( "short_open_tag", 1 );


$uri = substr($_SERVER['REQUEST_URI'], 1);
$exp = explode('/', $uri);
$med = array_shift($exp);
$url = implode('/', $exp);

if($med == 'api'){
	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, false);
	curl_setopt($ch, CURLOPT_TIMEOUT,60);

	$html = curl_exec($ch);
	$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

	curl_close($ch);

	if($code == 200){
		header("HTTP/1.1 200 OK");

		echo $html;
	}
	else{
		header("HTTP/1.0 404 Not Found");
	}
}
elseif($med == 'img'){
	echo file_get_contents($url);
}
else{
	header("HTTP/1.0 404 Not Found");
}
?>

.htaccess

DirectoryIndex index.php

RewriteEngine On
RewriteBase /

ErrorDocument 404 /index.php
ErrorDocument 403 /index.php

RewriteCond %{REQUEST_FILENAME} !(index.php)
RewriteRule ^(.*)$ /index.php/$1

Пример изображений:
http://domain.com/img/http://imagetmdb.cub.watch/http://image.tmdb.org/t/p/w200//1dCTKq9FkwO58EbcOdpZy1sYw71.jpg

Пример api
http://domain.com/api/http://api.themoviedb.org/3/movie/top_rated?api_key=4ef0d7355d9ffb5151e987764708ce96&language=ru

Вариант, конечно, интересный, с таким доступом к прокси, но сомнительный. Я поднял свой локальный прокси и VPN в network namespaces и жутко обломался.
То, что нигде не написано, что данный прокси далек от всем привычного вводит людей в заблуждение. Этот нюанс же нигде не описан.

Я правильно понимаю, что ваш вариант на PHP требует запуска Apache или Nginx?
Хотелось бы поподробнее узнать о том, как это все запустить.

P.S.
Пытался отредактировать URL при помощи url_rewrite_program в squid и могу сказать, что не стоит на это тратить время. Судя по всему проверка URL происходит раньше, чем перенаправление.

worms-qwe

Тут я уже описывал в чем проблема. Это единственный вариант.

Я правильно понимаю, что ваш вариант на PHP требует запуска Apache или Nginx?

Да, для использования приведённого выше прокси-скрипта надо поднимать http-сервер. Я на своём VDS поднял Апач. Чутка доработал скрипт и использую его.

  • 👍1

Подскажите если стоит nginx на впс но в директории html уже есть сайт, куда можно скинуть для прокси ваши файлы .htaccess index.php.
Я так понимаю можно в корне создать папку и сбросить туда эти файлы. Тогда путь будет http://домен/папка/

Подскажите если стоит nginx на впс но в директории html уже есть сайт, куда можно скинуть для прокси ваши файлы .htaccess index.php. Я так понимаю можно в корне создать папку и сбросить туда эти файлы. Тогда путь будет http://домен/папка/

Можно создать субдомен, и туда закинуть.

Нужно создать в nginx еще один конфиг сайта и там в блоке server указать другую корневую директорию сайта. И данный файл .htaccess придется переписать под nginx, ибо он сделан под apache. Можно вообще указать все, что в нем есть прямо в конфиге сайта.

index.php

<?php
header('Access-Control-Allow-Origin: *');

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( "short_open_tag", 1 );


$uri = substr($_SERVER['REQUEST_URI'], 1);
$exp = explode('/', $uri);
$med = array_shift($exp);
$url = implode('/', $exp);

if($med == 'api'){
	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, false);
	curl_setopt($ch, CURLOPT_TIMEOUT,60);

	$html = curl_exec($ch);
	$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

	curl_close($ch);

	if($code == 200){
		header("HTTP/1.1 200 OK");

		echo $html;
	}
	else{
		header("HTTP/1.0 404 Not Found");
	}
}
elseif($med == 'img'){
	echo file_get_contents($url);
}
else{
	header("HTTP/1.0 404 Not Found");
}
?>

.htaccess

DirectoryIndex index.php

RewriteEngine On
RewriteBase /

ErrorDocument 404 /index.php
ErrorDocument 403 /index.php

RewriteCond %{REQUEST_FILENAME} !(index.php)
RewriteRule ^(.*)$ /index.php/$1

Пример изображений: http://domain.com/img/http://imagetmdb.cub.watch/http://image.tmdb.org/t/p/w200//1dCTKq9FkwO58EbcOdpZy1sYw71.jpg

Пример api http://domain.com/api/http://api.themoviedb.org/3/movie/top_rated?api_key=4ef0d7355d9ffb5151e987764708ce96&language=ru

А в чем смысл в index.php отдельно делать api и img?
Попробовал удалить лишнее и оставил все в таком виде:

<?php
header('Access-Control-Allow-Origin: *');

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( "short_open_tag", 1 );


$url = substr($_SERVER['REQUEST_URI'], 1);
$proxy = '192.168.0.100:3131';

	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_PROXY, $proxy);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, false);
	curl_setopt($ch, CURLOPT_TIMEOUT,60);

	$html = curl_exec($ch);
	$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

	curl_close($ch);

	if($code == 200){
		header("HTTP/1.1 200 OK");

		echo $html;
	}
	else{
		header("HTTP/1.0 404 Not Found");
	}
?>

Теперь не надо отдельно прописывать …/api и …/img
Вроде все работает. Или я что-то проглядел?

P.S.
Строки 12 и 15 нужны для того, чтобы запросы с лампы шли через классические прокси. В данном случае прокси локальный.

А сервер обязательно должен быть за пределами РФ?

А сервер обязательно должен быть за пределами РФ?

Да, так как ТМДБ блокирует доступ для тех кто из РФ и РБ

Скиньте если не трудно под nginx скрипт

index.php

<?php
header('Access-Control-Allow-Origin: *');

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( "short_open_tag", 1 );


$uri = substr($_SERVER['REQUEST_URI'], 1);
$exp = explode('/', $uri);
$med = array_shift($exp);
$url = implode('/', $exp);

if($med == 'api'){
	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, false);
	curl_setopt($ch, CURLOPT_TIMEOUT,60);

	$html = curl_exec($ch);
	$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

	curl_close($ch);

	if($code == 200){
		header("HTTP/1.1 200 OK");

		echo $html;
	}
	else{
		header("HTTP/1.0 404 Not Found");
	}
}
elseif($med == 'img'){
	echo file_get_contents($url);
}
else{
	header("HTTP/1.0 404 Not Found");
}
?>

.htaccess

DirectoryIndex index.php

RewriteEngine On
RewriteBase /

ErrorDocument 404 /index.php
ErrorDocument 403 /index.php

RewriteCond %{REQUEST_FILENAME} !(index.php)
RewriteRule ^(.*)$ /index.php/$1

Пример изображений: http://domain.com/img/http://imagetmdb.cub.watch/http://image.tmdb.org/t/p/w200//1dCTKq9FkwO58EbcOdpZy1sYw71.jpg
Пример api http://domain.com/api/http://api.themoviedb.org/3/movie/top_rated?api_key=4ef0d7355d9ffb5151e987764708ce96&language=ru

А в чем смысл в index.php отдельно делать api и img? Попробовал удалить лишнее и оставил все в таком виде:

<?php
header('Access-Control-Allow-Origin: *');

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( "short_open_tag", 1 );


$url = substr($_SERVER['REQUEST_URI'], 1);
$proxy = '192.168.0.100:3131';

	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_PROXY, $proxy);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, false);
	curl_setopt($ch, CURLOPT_TIMEOUT,60);

	$html = curl_exec($ch);
	$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

	curl_close($ch);

	if($code == 200){
		header("HTTP/1.1 200 OK");

		echo $html;
	}
	else{
		header("HTTP/1.0 404 Not Found");
	}
?>

Теперь не надо отдельно прописывать …/api и …/img Вроде все работает. Или я что-то проглядел?

P.S. Строки 12 и 15 нужны для того, чтобы запросы с лампы шли через классические прокси. В данном случае прокси локальный.

Сможете помочь по настройке прокси

  • 👍1

Прокси через nginx

server
{
   listen 80;
   #server_name domain.com;

   location ~ ^/proxy/([^:]+):/?/([^/]+)/(.*)$
   {
      resolver 1.1.1.1 8.8.8.8 ipv6=off;
      proxy_pass $1://$2/$3$is_args$args;
      proxy_http_version 1.1;
   }
}

http://vpsip/proxy/https://image.tmdb.org/t/p/w200//1dCTKq9FkwO58EbcOdpZy1sYw71.jpg

Спасибо большое, все работает. Правда бывает иногда не работает прокси, если проверять отдельно на картинке выкидывает 403 ошибку, но после нескольких попыток все восстанавливается

А есть кто живой с этой ветки? Тоже хочу намутить для постеров папки мои торенты,, ток не совсем понял как. Есть у кого время есть подсказать? 😁

Ребят а в чем может быть проблема. Установил nginx, закинул файл my plugin. js с кодом выше. В браузере открывается, как только тест скрипта самого. Или нужно файл что бы был index.php? И в нем уже сам скрипт написать? Подскажите пожалуйста что не так делаю 🙄. Server на vps, или ещё нужно что установить для работы скрипта

Ребят а в чем может быть проблема. Установил nginx, закинул файл my plugin. js с кодом выше. В браузере открывается, как только тест скрипта самого. Или нужно файл что бы был index.php? И в нем уже сам скрипт написать? Подскажите пожалуйста что не так делаю 🙄. Server на vps, или ещё нужно что установить для работы скрипт
Скинь контакт от телеги, напишу

Ребят а в чем может быть проблема. Установил nginx, закинул файл my plugin. js с кодом выше. В браузере открывается, как только тест скрипта самого. Или нужно файл что бы был index.php? И в нем уже сам скрипт написать? Подскажите пожалуйста что не так делаю 🙄. Server на vps, или ещё нужно что установить для работы скрипт
Скинь контакт от телеги, напишу

@IGNATOV_68

За ночь пока понял, что я пытался hph скрипт запустить как js. И что нужно указать папку, и по ней переходить. А в этой папке должен быть index.php с самим скриптом. И в сервере прописать это, хотя может и не так, 😁🙄

Понравилась статья? Поделить с друзьями:
  • Tls код оповещения о неустранимой ошибке 70
  • Tls клиент ошибка 443
  • Tls firefox ошибка при установке защищенного соединения
  • Tls client внутреннее состояние ошибки 10013
  • Tls certificate changed ошибка