ef1f / AceSearch

0 stars 0 forks source link

Формирование длейлиста не по infohash а по channel id #2

Open Kot-nikot opened 7 months ago

Kot-nikot commented 7 months ago

Возможно ли реализовать формирование плейлиста не по infohash а по channel id ? Такого вида

EXTM3U

EXTINF:-1

acestream://0e194ff22eda4976eb4cac8fc3d9942e8b223af5

EXTINF:-1

acestream://f4fbf1c1f58b77f1343675b0aeb7b1c22feebbbd

EXTINF:-1

acestream://f1fe45c8d5f58301c74dde7acaf4db13e497b586

EXTINF:-1

acestream://e177586ae336f410e95e784348e4a1f7a82e0952

EXTINF:-1

acestream://3dba401ca5f2508ddfa955333e233d40d7f3572e

ef1f commented 7 months ago

Попробую, нужно вспомнить что я там написал, давно было

ef1f commented 7 months ago

в фале appsettings.json в параметре "urlTemplate": замените "infohash://{0}" на "acestream://{0}"

Kot-nikot commented 7 months ago

Я изначально, когда установил приложение пробовал менять данное значение в файле appsetting.joson но это всего лишь меняет название в плей листе, а не параметр и его значение.

ef1f commented 7 months ago

установил в конфиге urlTemplate": "acestream://{0}", сгенерил плайлист, вот мой файл в архиве f.as.zip , что в нем не так, как должно быть?

Kot-nikot commented 7 months ago

Нужно понимать,что infohash и channel_id это две разные вещи, и что простая замена слова не приведет к требуемым изменением.Приведу пример двух плейлиста с одними и теми же каналами, но в одном он сформирован по shashinfo а второй по channel_id playlist.zip (https://github.com/ef1f/AceSearch/files/14624718/playlist.zip)

Kot-nikot commented 7 months ago

https://wiki.acestream.media/Playlist_API

Kot-nikot commented 7 months ago

Chanel_id можно узнать через запросы Acestream движку таким образом http://127.0.0.1:6878/server/api?method=get_content_id&infohash=

Kot-nikot commented 7 months ago

Вот пример: Запрос http://127.0.0.1:6878/server/api?method=get_content_id&infohash=e54d7ad623d1af7e3dc30630b139a22466c471a7 Ответ: {"result": {"content_id": "541842bf8e3c9e4a6e6a3ebe74b3dd101e8295a1"}, "error": null} Вот это значение надо вставить в плейлист: 541842bf8e3c9e4a6e6a3ebe74b3dd101e8295a1 Привед к такому виду.

EXTINF:-1,Домашний [RU]

acestream://541842bf8e3c9e4a6e6a3ebe74b3dd101e8295a1

ef1f commented 7 months ago

Выложил, проверяйте

Kot-nikot commented 7 months ago

Поправьте еще и dockergile с 5 на 7 версию NET чтобы не править его....

ef1f commented 7 months ago

исправил

ef1f commented 7 months ago

у вас версия aceStreamEngine какая?

Kot-nikot commented 7 months ago

Не хочет работать... При запуске контейнера командой: $ sudo docker run -d -v /home/nikot/AceSearch:/src/AceSearch/src/bin/Release/net7.0 --name ace_search ace_search 9c390ce6f05ad84b56b6cf48379b8b0b5d22acfc89ddd977c5b785454665935c видно что запускается h$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9c390ce6f05a ace_search "/bin/sh -c 'dotnet …" 51 seconds ago Up 48 seconds ace_search

В логе нет выполнения, раньше было что копировались файлы в рабочий каталог

$ sudo docker logs -f 9c390ce6f05a MSBuild version 17.7.4+3ebbd7c49 for .NET Determining projects to restore... Ну и соответственно там толь ко фаилы что были при выполнении git clone ~/AceSearch$ ls AceSearch.sln dockerfile README.md src

Kot-nikot commented 7 months ago

у вас версия aceStreamEngine какая?

Ваша engine_3.1.61_armv7.tar.gz

Kot-nikot commented 7 months ago

Заработал :~/AceSearch$ sudo docker logs -f 9c390ce6f05a MSBuild version 17.7.4+3ebbd7c49 for .NET Determining projects to restore... Restored /src/AceSearch/src/AceSearch.csproj (in 7.54 min). AceSearch -> /src/AceSearch/src/bin/Release/net7.0/AceSearch.dll

Build succeeded. 0 Warning(s) 0 Error(s)

Time Elapsed 00:07:46.55 net7.0/ net7.0/Microsoft.Extensions.FileSystemGlobbing.dll net7.0/Microsoft.Extensions.FileProviders.Abstractions.dll net7.0/AceSearch net7.0/Microsoft.Extensions.Configuration.dll net7.0/AceSearch.runtimeconfig.json net7.0/Newtonsoft.Json.dll net7.0/.git/ net7.0/.git/HEAD net7.0/.git/hooks/ net7.0/.git/hooks/prepare-commit-msg.sample net7.0/.git/hooks/applypatch-msg.sample net7.0/.git/hooks/pre-applypatch.sample net7.0/.git/hooks/post-update.sample net7.0/.git/hooks/push-to-checkout.sample net7.0/.git/hooks/commit-msg.sample net7.0/.git/hooks/pre-push.sample net7.0/.git/hooks/pre-receive.sample net7.0/.git/hooks/update.sample net7.0/.git/hooks/fsmonitor-watchman.sample net7.0/.git/hooks/pre-commit.sample net7.0/.git/hooks/pre-merge-commit.sample net7.0/.git/hooks/pre-rebase.sample net7.0/.git/packed-refs net7.0/.git/refs/ net7.0/.git/refs/tags/ net7.0/.git/refs/remotes/ net7.0/.git/refs/remotes/origin/ net7.0/.git/refs/remotes/origin/HEAD net7.0/.git/refs/heads/ net7.0/.git/refs/heads/main net7.0/.git/config net7.0/.git/objects/ net7.0/.git/objects/info/ net7.0/.git/objects/pack/ net7.0/.git/objects/pack/pack-c347e88665f293288eb7efb0428a3fccdc39e66d.idx net7.0/.git/objects/pack/pack-c347e88665f293288eb7efb0428a3fccdc39e66d.pack net7.0/.git/info/ net7.0/.git/info/exclude net7.0/.git/index net7.0/.git/description net7.0/.git/branches/ net7.0/.git/logs/ net7.0/.git/logs/HEAD net7.0/.git/logs/refs/ net7.0/.git/logs/refs/remotes/ net7.0/.git/logs/refs/remotes/origin/ net7.0/.git/logs/refs/remotes/origin/HEAD net7.0/.git/logs/refs/heads/ net7.0/.git/logs/refs/heads/main net7.0/Microsoft.Extensions.FileProviders.Physical.dll net7.0/AceSearch.pdb net7.0/.gitignore net7.0/README.md net7.0/src/ net7.0/src/AceSearch.csproj net7.0/src/ToDateTimeConverter.cs net7.0/src/Settings.cs net7.0/src/TrimmingJsonConverter.cs net7.0/src/appsettings.json net7.0/src/Channels.cs net7.0/src/Program.cs net7.0/AceSearch.dll net7.0/Microsoft.Extensions.Configuration.Abstractions.dll net7.0/Microsoft.Extensions.Configuration.Json.dll net7.0/Microsoft.Extensions.Configuration.FileExtensions.dll net7.0/AceSearch.deps.json net7.0/Microsoft.Extensions.Primitives.dll net7.0/appsettings.json net7.0/dockerfile net7.0/Microsoft.Extensions.Configuration.Binder.dll net7.0/AceSearch.sln net7.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll

Сейчас попробую сгенерировать плейлист.

Kot-nikot commented 7 months ago

В файле конфигурации надо поправить "aceStreamEngineUrl": "http://127.0.0.1/:6878", убрать слеш после ip иначе ошибка при соединении с сервером. Ну и то что плейлист создался за 3 сек говорит о том что он не корректен. Потому как каждый channel id определяется через запрос а на 2500 каналов это нужно время. Если конечно вы не нашли способ как это реализовать без запроса? Судя по коду { var url = $"{urlEngine}/server/api?method=get_content_id&infohash={infoHash}";

        using var handler = new HttpClientHandler();
        handler.ServerCertificateCustomValidationCallback =
            HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;

        using var client = new HttpClient(handler);
        var json = await client.GetStringAsync(url);

        var jsonObj = JObject.Parse(json);
        var chanelId = Convert.ToString(jsonObj["result"]?["content_id"]);
        return chanelId;
    }

Все таки через запрос

ef1f commented 7 months ago

у меня плэйлист по запросу http://127.0.0.1:6878/playlist/get?format=json, выдается пустой, поэтому каждый channel id определяю через запрос.

ef1f commented 7 months ago

пробовал одним запросом вытянуть как в вики написано, никак:(

Kot-nikot commented 7 months ago

у меня плэйлист по запросу http://127.0.0.1:6878/playlist/get?format=json, выдается пустой, поэтому каждый channel id определяю через запрос.

Почему тогда в сформированном плейлисте все таки отражается infoHash?

as.joson

{ "name": ".Black", "url": "be198e53c920d08d3567a4da873d71c16de74266", "cat": "movies" },

плейлист

EXTINF:-1,.Black

acestream://be198e53c920d08d3567a4da873d71c16de74266

ef1f commented 7 months ago

файл в новом формате, по умолчанию f.as.a.m3u, старые остались как были

Kot-nikot commented 7 months ago

Там всего 15 каналов

ef1f commented 7 months ago

это, рабочие по избранному списку, остальное поменяю позже

ef1f commented 7 months ago

главное этот плейлист рабочий?

Kot-nikot commented 7 months ago

это, рабочие по избранному списку, остальное поменяю позже

То есть по общему плейлисту по id не формируется? только из тех каналов что в избранном?

ef1f commented 7 months ago

пока Да

Kot-nikot commented 7 months ago

пока Да

3 канала из 15 только показывают.. Armenia TV Cartoon network Nat Geo Wikd HD

ef1f commented 7 months ago

infoHash не работает теперь совсем?

Kot-nikot commented 7 months ago

infoHash не работает теперь совсем?

Я если честно не знаю как их посмотреть.

ef1f commented 7 months ago

пока Да

3 канала из 15 только показывают.. Armenia TV Cartoon network Nat Geo Wikd HD

Может старая версия движка?

ef1f commented 7 months ago

Я изначально это плэйлист генератор затачивал на проксю от пепсика, там он инфохэш понимал и сам id получал

Kot-nikot commented 7 months ago

Я изначально это плэйлист генератор затачивал на проксю от пепсика, там он инфохэш понимал и сам id получал

Такой формат понимает drm-play собственно на нем и смотрю.

ef1f commented 7 months ago

попробую на неделе обновить движок на более новую версию, может с ней прокатит. Возился с версией 3.1.80, пытался под линуксом запустить, уперся в проблему с зависимостями, попробую теперь 3.1.74

Kot-nikot commented 7 months ago

попробую на неделе обновить движок на более новую версию, может с ней прокатит. Возился с версией 3.1.80, пытался под линуксом запустить, уперся в проблему с зависимостями, попробую теперь 3.1.74

поменял в настройках на ip телефона, ни чего не поменялось( на телефоне 3.2.1.0) Хотя нет еще один показывает, но он идет с тормозами. Так что от движка только 1 +

ef1f commented 7 months ago

может что еще поменялось, я изначально получаю список каналов тут: https://api.acestream.me/all?api_version=1.0&api_key=test_api_key потом по каждому каналу через инфохэш и движок вытягиваю channel id

Kot-nikot commented 7 months ago

А еще такой вопрос, после того как отработал докер контейнер он нам по сути не нужен, Ведь все необходимые файлы для работы находятся в директории которую мы указали в при запуске контейнера?

ef1f commented 7 months ago

А еще такой вопрос, после того как отработал докер контейнер он нам по сути не нужен, Ведь все необходимые файлы для работы находятся в директории которую мы указали в при запуске контейнера?

нет не нужен, его задача сбилдить

ef1f commented 7 months ago

Можно проверить плейлист? f.as.a.zip

Kot-nikot commented 7 months ago

Можно проверить плейлист? f.as.a.zip Bp 44 каналов только 20 показывают. А если через новый движок то только 7 не показывают.

ef1f commented 7 months ago

А а в плейлисте, который скрипт AceStreamSearchEngineIDAuto.zip генерит, там все показывает?

Kot-nikot commented 7 months ago

А а в плейлисте, который скрипт AceStreamSearchEngineIDAuto.zip генерит, там все показывает?

Я вчера сгенерировал на 2700 каналов, там много не нужного шлака и тоже нет 100% рабочих. Сейчас попробовал через новый движок. И статистика такая, из 10 каналов 9 показывает..

ef1f commented 7 months ago

выложил последнюю версию

Kot-nikot commented 7 months ago

выложил последнюю версию

А движок Ace Stream не удалось обновить?

ef1f commented 7 months ago

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

Kot-nikot commented 7 months ago

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

Я нашел версию 3.1.80 но у меня не заработала.

ef1f commented 7 months ago

Удалось запустить версию движка 3.2.1(раньше даже не запускалась), но возникает такая вот ошибка: File "ACEStream/Core/Utilities/utilities.py", line 1946, in load_module File "/home/anton/.local/share/python-for-android/build/other_builds/python3/x86__ndk_target_21/python3/Lib/importlib/__init__.py", line 127, in import_module File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 671, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 783, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/anton/.local/share/python-for-android/build/python-installs/unnamed_dist_1/psutil/__init__.py", line 99, in <module> File "/home/anton/.local/share/python-for-android/build/python-installs/unnamed_dist_1/psutil/_pslinux.py", line 26, in <module> ImportError: dlopen failed: cannot locate symbol "getifaddrs" referenced by "/acestream.engine/lib/psutil/_psutil_linux.so"...

далее вот такая вот ошибка: Failed to establish a new connection: [Errno 7] No address associated with hostname')'

getifaddrs это функция libc.so, такая проблема возникает на всех версиях начиная с 3.1.80. Перепробовал разные варианты, пока не знаю куда дальше копать((

Kot-nikot commented 7 months ago

Перепробовал разные варианты, пока не знаю куда дальше копать((

Не получилось решить проблему с зависимостями?

ef1f commented 7 months ago

Нет, не получается