-
Notifications
You must be signed in to change notification settings - Fork 112
Media API
immisterio edited this page Oct 26, 2025
·
4 revisions
Каждый запрос должен содержать валидный auth_token. Список допустимых токенов задаётся в конфигурации (init.conf, init.yaml). При отсутствии или неверном токене контроллер возвращает 401 Unauthorized с сообщением об ошибке.
Пример init.conf
"media": {
"tokens": ["token1", "token2"]
}Пример init.yaml
media:
tokens:
- token1
- token2- Назначение: Получение прокси-ссылки на изображение с изменением размеров.
-
Параметры пути:
-
token— токен авторизации. -
width,height— желаемые размеры. Если одно из значений равно 0, масштабирование происходит пропорционально по другому параметру. -
url— исходная ссылка на изображение.
-
-
Результат: Редирект на внутренний прокси-хост
/proxyimg:{width}:{height}/…или исходный URL, если прокси отключён.
- Назначение: Получение прокси-ссылки на медиа ресурс.
-
Параметры пути:
-
type— тип ресурса (img,video). -
token— токен авторизации. -
url— исходная ссылка на ресурс.
-
- Результат: Редирект на прокси или прямой поток.
- Назначение: Универсальный способ получить прокси-ссылку через query-параметры без жёсткого формата пути.
-
Параметры:
-
url— исходный адрес ресурса. -
headers— JSON-строка с дополнительными заголовками (опционально). - Прочие поля (
type,auth_token,width,height,proxy,proxy_name,apnstream,useproxystream) передаются через query-параметры и привязываются кMediaRequestBase.
-
- Результат: HTTP редирект на проксированный ресурс.
- Назначение: Массовая генерация прокси-ссылок.
-
Тело запроса: JSON-массив
urlsи дополнительные параметры, совместимые сMediaRequest(type,auth_token,width,height,proxy,headers, и т.д.). -
Результат: JSON-ответ с массивом
urls, содержащим прокси-ссылки.
https://lampac.example.com/media/img/YOUR_TOKEN/https://remote.host/path/poster.jpg
https://lampac.example.com/media/video/YOUR_TOKEN/https://remote.host/video.m3u8
Для изменения размеров изображения:
https://lampac.example.com/media/rsize/YOUR_TOKEN/320/480/https://remote.host/path/poster.jpg
var params = [
'url=' + encodeURIComponent('https://remote.host/video.m3u8'),
'type=video',
'auth_token=YOUR_TOKEN',
'useproxystream=true'
].join('&');
fetch('https://lampac.example.com/media?' + params, {
redirect: 'follow'
})
.then(function(response) {
if (response.redirected) {
return response.url;
}
throw new Error('Не удалось получить прокси-ссылку');
})
.then(function(proxyUrl) {
console.log('Проксированная ссылка:', proxyUrl);
})
.catch(function(error) {
console.error(error);
});fetch('https://lampac.example.com/media', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
auth_token: 'YOUR_TOKEN',
type: 'img',
width: 320,
height: 480,
urls: [
'https://remote.host/path/poster1.jpg',
'https://remote.host/path/poster2.jpg'
]
})
})
.then(function(res) {
return res.json();
})
.then(function(data) {
console.log('Проксированные изображения:', data.urls);
})
.catch(function(error) {
console.error(error);
});- Для передачи дополнительных заголовков используйте JSON-объект в поле
headers(GET — строка, POST — массив объектовHeadersModel). - Для работы через именованный прокси укажите
proxy_name, который должен существовать вAppInit.conf.globalproxy. - При прямом указании
proxyконтроллер создаёт временную конфигурацию и применяет её к запросу.
-
400 Bad Requestвозвращается при отсутствии обязательных параметров (url,urls). -
401 Unauthorized— при некорректном токене. - Ответы об ошибках имеют формат:
{
"success": false,
"error": "сообщение"
}