Автор Тема: AceProxy: HTTP прокси для Ace Stream  (Прочитано 2025751 раз)

alex23

  • Full Member
  • ***
  • Сообщений: 231
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8670 : Декабрь 09, 2018, 03:24:43 »
  • nano /opt/acey-master/src/consts/index.ts
Тут после редактирования надо выполнить npm run build. Конфиг отдельно от исходников будет в следущей версии.

я знаю шеф  ;), и поэтому выполняем:
docker restart "имя контейнера"
при котором всегда выполняется:
npm run build
« Последнее редактирование: Декабрь 09, 2018, 03:28:26 от alex23 »
servers:(vps)Xeon E5-2620 v4,(local)Intel n3150,(local)RPi3 B+> AceStream v3.1.6-v3.1.33 > HTTPAceProxy > client : apple tv 4k > Cloud Stream IPTV Player
alpine based docker image AceStream + HTTPAceProxy

Pepsik

  • Hero Member
  • *****
  • Сообщений: 1889
  • Лучшее - враг хорошего!
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8671 : Декабрь 09, 2018, 10:21:57 »
xadd, а возможность заставить работать с клиентом ТТВ будет? )))
Посмотрим как дело пойдет.
Господа, а как вы всё же смотрите на то, что бы создать отдельную тему для прокси на nodejs? А, xadd?
Как проект доведу да более-менее приличного состояния и тогда создам, должно быть скоро.
Поможем маленько делу ... итак "проспавшись", подначитавшись доки по JS и поизучав исходники (дай Бог автору здоровья .. сподвигнул меня на пока что поверхностное изучение JS) проведем следующий эксперимент
1) Нужно найти трансляцию с заведомо долгим режимом STATE1 (PREBUFFERING) т.е. "генерация" ссылки на трансляцию, URL -а который движок выдает ....
2) Попытаться стартануть эту трансляцию в "новоявленной" .... Поведение - как повезет ... или прокся сама отключится от движка , или вывалит ошибки .... лог ОТ и ДО ниже
ChannelPool#resolveChannelRequest
   clientId = de641dcd-afc0-452b-b718-46d1e43b9e0b
   channelName = Киносемья
ChannelPool#requestChannel -> fetch
   clientId = de641dcd-afc0-452b-b718-46d1e43b9e0b
   channel = Киносемья
ChannelPool#resolveChannelRequest
   clientId = 3ad2ca39-0e63-4d17-ad37-bac9d10b2541
   channelName = Киносемья
ChannelPool#enterChannel
   clientId = de641dcd-afc0-452b-b718-46d1e43b9e0b
   channelName = Киносемья
ChannelPool#enterChannel
   clientId = 3ad2ca39-0e63-4d17-ad37-bac9d10b2541
   channelName = Киносемья
ChannelPool -> client stream close
   clientId = de641dcd-afc0-452b-b718-46d1e43b9e0b
   channelName = Киносемья
ChannelPool#leaveChannel
   clientId = de641dcd-afc0-452b-b718-46d1e43b9e0b
   channelName = Киносемья
Error: write after end
    at writeAfterEnd (_stream_writable.js:236:12)
    at PassThrough.Writable.write (_stream_writable.js:287:5)
    at PassThrough.channelData.response.body.on.chunk (/home/Dorik/acey/build/prod/index.js:591:16)
    at emitOne (events.js:121:20)
    at PassThrough.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at PassThrough.Readable.push (_stream_readable.js:208:10)
    at PassThrough.Transform.push (_stream_transform.js:147:32)
    at PassThrough.afterTransform (_stream_transform.js:88:10)
ChannelPool -> client stream close
   clientId = 3ad2ca39-0e63-4d17-ad37-bac9d10b2541
   channelName = Киносемья
ChannelPool#leaveChannel
   clientId = 3ad2ca39-0e63-4d17-ad37-bac9d10b2541
   channelName = Киносемья
ChannelPool#stopChannel
   channelName = Киносемья 

.... Канал так и не стартанул .... в принципе c любой трансляцией с долгой пребуфферизацией прокся работает "криво" ... И в случае если "вдруг" движок в процессе своей работы "впадет" в долгий режим STATE3 (BUFFERING) - то имеем аналогичную картину поведения прокси

p.s. В общем надо в код добавить http://wiki.acestream.org/wiki/index.php/Engine_HTTP_API#Getting_some_stats  ;D и анализировать чего там с движком, точнее с текущей трансляцией, и в зависимости от "state" (prebuff, buff) и времени "пребывания" в нем ... делать выводы  ::)  ибо CLIENT_IDLE_TIMEOUT - это хорошо .. тока вот  у прокси есть еще один "клиент" - движок ... А у него своя логика IDLE  ;D

p.s.s.  Так же следует понимать что чем больше у движка одновременно смотрящих "клиентов" (на разных трансляциях), тем дольше режим prebuff при подключении каждого следующего  и тем чаще возникает режим BUFF по уже просматриваемым трансляциям клиентами ... + это еще и от "качества бродкаста" зависит .... КАК ПОВЕЗЕТ .... Коллега  ;)

p.s.s.s.
ChannelPool#resolveChannelRequest
   clientId = 32afd185-d26b-4c62-a034-57db002cc072
   channelName = Первый канал HD
ChannelPool#requestChannel -> fetch
   clientId = 32afd185-d26b-4c62-a034-57db002cc072
   channel = Первый канал HD
Отличный канал для тестов вышеприведенного "эссе" .... 98% попадания из 100....
« Последнее редактирование: Декабрь 09, 2018, 13:02:45 от Pepsik »
https://t.me/AceStreamMOD
BTC:1J7YKUQ34mUsvXqLQ8aSWL2YtYHZX9RvbJ
DASH:XvvXpE2L5AU6BDHCQYwtQ7KJCXEuq7d9aC

veliyovimu

  • Newbie
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8672 : Декабрь 09, 2018, 14:34:38 »
приветствую :) , можно я буду третьим  ;D ? в виду плохой погоды и нехер делать написал, да-да, вы уже догадались, aceproxy :) , но не на питоне, и даже не на nodejs, а на яве  ;D . форкнутая версия Дорика (ака Пепсика) вполне устраивала кроме одного "но" - ее написал не я :-D (на этой шутке по идее все программеры дружно заржали). Так что есть теперь версия, которую написал я и для себя любимого,  но если кому-то тоже скучно и нехер делать - могу поделиться. В том числе и исходниками. Есть интерес?

Pepsik

  • Hero Member
  • *****
  • Сообщений: 1889
  • Лучшее - враг хорошего!
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8673 : Декабрь 09, 2018, 14:59:39 »
приветствую :) , можно я буду третьим  ;D ? в виду плохой погоды и нехер делать написал, да-да, вы уже догадались, aceproxy :) , но не на питоне, и даже не на nodejs, а на яве  ;D . форкнутая версия Дорика (ака Пепсика) вполне устраивала кроме одного "но" - ее написал не я :-D (на этой шутке по идее все программеры дружно заржали). Так что есть теперь версия, которую написал я и для себя любимого,  но если кому-то тоже скучно и нехер делать - могу поделиться. В том числе и исходниками. Есть интерес?
А то ! Даешь больше хороших и разных  ;D  не хер делать open source - двигает прогресс

можно я буду третьим  ;D....
Аля шведская семья ....  ;D ;D ;D
« Последнее редактирование: Декабрь 09, 2018, 15:01:18 от Pepsik »
https://t.me/AceStreamMOD
BTC:1J7YKUQ34mUsvXqLQ8aSWL2YtYHZX9RvbJ
DASH:XvvXpE2L5AU6BDHCQYwtQ7KJCXEuq7d9aC

veliyovimu

  • Newbie
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8674 : Декабрь 09, 2018, 15:48:36 »
ладно, тогда чутка позже отпишусь :)

xadd

  • Newbie
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8675 : Декабрь 09, 2018, 16:00:07 »
но если кому-то тоже скучно и нехер делать - могу поделиться. В том числе и исходниками. Есть интерес?

Показывай  :) Протестим  :D :D

xadd

  • Newbie
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8676 : Декабрь 09, 2018, 16:01:16 »
Обновил версию и создал тему http://mytalks.ru/index.php?topic=6716.0

veliyovimu

  • Newbie
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8677 : Декабрь 09, 2018, 18:24:15 »
ладно, погнали :)
  • для работы нужнa только ява, версии 8 и выше под вашу платформу. берем либо из официальных реп либо качаем с оракла. теоретическо можно и под более древние версии запилить, но не вижу смысла уродовать код, если в этом не будет практического смысла
  • простейшая команда на запуск java -jar jaceproxy-XX-all.jar - будет все по дефолту, в том числе лог только в консоль. Думаю, не стоит разжевывать, что "java" должна быть в path , а к файлу должен быть указан полный путь :) . При запуске выплюнет, что да как, например
JAceConfig{
aceHost='127.0.0.1'
acePort=62062
port=8000
apiTimeout=30
streamTimeout=45
restartOnTimeout=true
logLevel=INFO
logFile='null'
logFileMaxSize=10 MB
logFileMaxCount=10
}
  • конфигов нет: все, что можно поменять, меняем в коммандной строке. все варианты можно увидеть по команде java -jar jaceproxy-XXX-all.jar -h 
  • на счет опции restart-on-timeout позволяющей перезапустить воспроизведение, если нет данных в течение  stream-timeout секунд я уже не так уверен, как раньше. Если движок просто не может качать с нужно скоростью и постоянно буфферит, то рестарт никак не поможет. Т.е. можно отключить. Возможно в следующей версии поменяю default на "отключено". По сути я это делал для автоматических записей в tvheadend - в последнее время однако не возникает внештатных ситуаций, когда ace обосрался и лежит, так что опция срабатывает бесполезно - рестартуя дохлую раздачу. Но с другой стороны и сильно хуже не становится
  • по началу (а возможно и позже) имеет смысл подключить лог в файл, добавив к команде опции --log-level=DEBUG --log-file=/var/log/jaceproxy.log --log-file-max-count=3 - думаю примерно понятно, что тут что :) , можно еще размер файла указать явно --log-file-max-size - по умолчанию он 10 метров. Короче с опцией -h там все есть, правда по-нерусски :) 

с запуском/конфигом вроде все. по поводу возможностей:
  • live tv умеет, ясен пончик
  • торренты тоже, для мультифайловых возвращает m3u со списком файлов. х.з. или это будет работать на например телеках, vlc вроде понимает такой коленкор - эту фичу только прикрутил, возможны косяки
  • одну и ту же трансляцию смотреть на нескольких клиентах можно (нафига такое надо  - не знаю, но чисто технически было интересно реализовать)
никаких плагинов нет, и возможно не будет - мне не надо :) и я считаю, что проксик не должен уметь генерить плейлисты для каких-то сервисов. но могу научить как пользоваться tvheadend исходник выложить, можно приделать, если кому надо. в принципе это не-сложно, если умеючи. А может передумаю и прикручу, если будет желание опять погода плохая, и дадут ссылку на соответствующие апи

урлы для запуска (как и дефолтный порт) полностью совпадают с питоновской версией (в частности потому, что так генерятся плейлисты на помойке, мало ли :) )
т.е. для торрентов/тв
http://ip:port/torrent/адрес
http://ip:port/url/адрес
для мультифайловых можно добавить индекс файла (первому файлу соответствует индекс 1, не ноль ;)  чтоб людям понятно было )
http://ip:port/torrent/адрес/1

адрес, понятное дело, url-encoded - все как у людей :)

другие варианты
http://ip:port/content_id
http://ip:port/pid
http://ip:port/infohash

экзотику типа файла на локальной системе или контент в виде base64 не пробовал, вероятно пока не работает. как вы уже догадались, "мне такое не надо"  :-D

файл слишком большой (6метров) - ява как никак :) , по-этому даю ссылку на файлопомойку
https://cloud.mail.ru/public/M5wV/2DYEdPW5F
вирусов нет, криптомайнеров тоже, мамой клянусь  ;D

вроде все, начинайте матюкать слать отч0ты :)

Psh

  • Newbie
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8678 : Декабрь 09, 2018, 21:59:13 »
ладно, погнали :)
вирусов нет, криптомайнеров тоже, мамой клянусь  ;D
Го оформи по человечески на гитхабе с сырцами, а там посмотрим, а то в мейловом облаке как то даже смешно...
« Последнее редактирование: Декабрь 09, 2018, 22:48:43 от Psh »

alex23

  • Full Member
  • ***
  • Сообщений: 231
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8679 : Декабрь 09, 2018, 22:04:05 »
Го оформи по человечески на гитхабе с сырцами

+1000

servers:(vps)Xeon E5-2620 v4,(local)Intel n3150,(local)RPi3 B+> AceStream v3.1.6-v3.1.33 > HTTPAceProxy > client : apple tv 4k > Cloud Stream IPTV Player
alpine based docker image AceStream + HTTPAceProxy

veliyovimu

  • Newbie
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8680 : Декабрь 09, 2018, 23:07:18 »
Го оформи по человечески на гитхабе с сырцами
а пожалуйста https://github.com/chpasha/jaceproxy

Psh

  • Newbie
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #8681 : Сегодня в 02:24:07 »
veliyovimu, что т никак не могу понять, как ему плейлист то подсунуть? Отбрыкивается ругаясь Unsupported url, либо вообще возвращает (точнее не возвращает ничего) ERR_EMPTY_RESPONSE
« Последнее редактирование: Сегодня в 02:25:52 от Psh »