notinthewoods

Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору A27 Потестил вариант батника (05:30 25-01-2021). Сразу отмечу, что пришлось заменить двоеточие на точку с запятой в двух местах: Цитата: "Tokens=1,2 Delims=:" %%A in | Цитата: потому как в адресе плейлиста (внутри) есть двоеточие и плейлист сначала был получен аккурат до этого двоеточия. Не знаю, правильно ли применять точку с запятой в этом случае, может надо какой другой символ... Теперь о работе батника. Четко прослеживаются 2 фазы его работы. На скриншоте постарался подробно объяснить. Список прокси Proxy.txt был составлен по такому сценарию. 4 строки, рабочий прокси только один, специально поместил на строку №2 (чтобы были попытки соединения до и после строки №2). В трех оставшихся прокси поставил порт 0 для гарантированного получения ошибки соединения. Ну, чтобы быть уверенным, что плейлист будет получен только из строки №2 и не иначе. Цитата: http://165.227.11.196:0 http://login:password@ip:port http://52.14.29.191:0 http://192.236.160.186:0 | (здесь был скриншот) Да, забыл подчеркнуть в скрине - когда плейлист берется из кэша, то сервер тот же (edge173 - edge173; edge205 - edge205 и т.д.) А когда плейлист запрашивается по новой, сервер меняется. Это дополнительное подтверждение к тому, что в фазе №1 батник использует адрес плейлиста из кэша. При первой потере потока (я просто выключил плеер VLC) плейлист был взят из кэша. Но при второй потере батник почему-то "забыл" это сделать и перешел к дальнейшему перебору строк - к фазе №2. В идеале - батник после потери стрима должен в обязательном порядке пробовать получить поток имеющимся плейлистом (т.е. как в фазе 1). Если же попытка окажется неудачной - переходить к фазе №2. И еще. То, что номер сервера меняется - значения не имеет. На любом из трех вариантов плейлиста поток принимается с одинаковым успехом. =============== Цитата: А url обязательно постоянно вводить вручную? | Это просто универсальный вариант, чтобы можно было бы вводить адрес любого стрима. Разумеется, легко переделать под конкретный url. Цитата: Это результат передачи найденного плейлиста? | Это результаты разных ситуаций. В первом случае плейлист найден, передан стримлинку на воспроизведение - "Starting player..." Во втором случае - "Cannot connect to proxy..." - нет соединения - плейлист не получен - нет передачи плейлиста. Точнее, передается пустая информация. Потому что в батнике команда вместо: Цитата: streamlink https://<server>/live-hls/amlst:<nickname><blablabla>_trns_h264/playlist.m3u8 720p | приобретает такой вид: Цитата: Вот в результате и такие сообщения обиженного стримлинка о том, как нужно правильно его юзать, что мол у вас тут "непризнанные аргументы"... Цитата: Так и необходима информация о всех вариациях (ошибок) | Какие выловил: Цитата: error: Unable to open URL:https://en.chaturbate.com/get_edge_hls_url_ajax/ (HTTPSConnectionPool(host='en.chaturbate.com', port=443): Max retries exceeded with url: /get_edge_hls_url_ajax/ (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x000002185B171A00>, 'Connection to 165.227.11.196 timed out. (connect timeout=20.0)'))) *** error: Unable to open URL:https://en.chaturbate.com/get_edge_hls_url_ajax/ (HTTPSConnectionPool(host='en.chaturbate.com', port=443): Max retries exceeded with url: /get_edge_hls_url_ajax/ (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002B9F6C81A00>: Failed to establish a new connection: [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение')))) *** error: Unable to open URL:https://en.chaturbate.com/get_edge_hls_url_ajax/ (HTTPSConnectionPool(host='en.chaturbate.com', port=443): Max retries exceeded with url: /get_edge_hls_url_ajax/ (Caused by ProxyError('Cannot connect to proxy.', timeout('timed out')))) | Эти раньше попадались: Цитата: (Caused by ProxyError('Cannot connect to proxy.', timeout('_ssl.c:1108: The handshake operation timed out')))) (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response')))) (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 500 Internal Server Error')))) (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden')))) (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 400 Bad Request')))) |
| Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 21:43 25-01-2021 | Исправлено: notinthewoods, 17:54 26-01-2021 |
|