Отвал встроенного парсера YouTube [Исправлено]

Автор Evgeniy1990, 04 августа 2023, 18:05:30

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Evgeniy1990

Описание проблемы:

В последнее время довольно часто наблюдаю ситуацию, когда происходит так называемый "отвал" встроенного парсера YouTube. Под "отвалом" подразумевается полный отказ его использования (включения) при открытии ссылки, или же автоматическом переходе на следующую ссылку в плейлисте. Сама проблема плавающая, т.е. встроенный парсер может отвалится сразу же, а может через n-количество ссылок, например, после 5 - 7 штук. Несмотря на тот факт, что в настройках включен именно встроенный парсер YouTube, он не всегда будет использоваться и работать. Вместо него будет также подключаться внешний "3DYD YouTube Source" и т.д. При попытке перезапустить текущую воспроизводимую ссылку, плеер просто виснет намертво.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

Начнем с главного. Какая система?

ЦитироватьНесмотря на тот факт, что в настройках включен именно встроенный парсер YouTube, он не всегда будет использоваться и работать. Вместо него будет также подключаться внешний "3DYD YouTube Source" и т.д.
Встроенный парсер не блокирует какие-либо внешние DirectShow фильтры.

Aleksoid1978

Встроенный парсер не может "отвалится", он часть плеера вообще то :)
Но может произойти другое - он просто не сможет получить ссылки на потоки, поэтому тут уже вступают в дело DirectShow фильтры.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: V0lt от 04 августа 2023, 19:03:35Начнем с главного. Какая система?
Windows 7 x64.
Цитата: Aleksoid1978 от 05 августа 2023, 03:19:50Но может произойти другое - он просто не сможет получить ссылки на потоки, поэтому тут уже вступают в дело DirectShow фильтры.
Вот это-то и странно. Раньше всегда стабильно работал, получал ссылки на потоки, любые ссылки открывал мгновенно. Сейчас некоторые открываются также мгновенно, а некоторые с задержкой из-за подключения внешнего парсера, а иногда плеер и вовсе не может открыть ссылки, т.е. открытие происходит до бесконечности и соответственно плеер виснет намертво.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

MPCfan

Цитата: Evgeniy1990 от 05 августа 2023, 10:53:26вовсе не может открыть ссылки
Так это было и раньше. И необязательно ютюб. Периодически сталкиваюсь с бесконечным открытием. Диспетчер задач в помощь. Пример с нерабочей(?) или "плохой" ссылкой, приводящей к бесконечному открытию(зависанию) >  https://disk.yandex.ru/i/7uOZih8FV57csg

V0lt

#5
Я не увидел в теме ни одной Ютуб ссылки.

05 августа 2023, 17:20:27
У меня на Win10 Ютуб играет нормально. Ссылка.

MPCfan

Цитата: V0lt от 05 августа 2023, 17:01:15Я не увидел в теме ни одной Ютуб ссылки.

05 августа 2023, 17:20:27
У меня на Win10 Ютуб играет нормально. Ссылка.
На Win8 эта ссылка тоже играет нормально, только yt-dlp(при наличии) не даёт встроенному парсеру почти 60%(встройка) на 40%(yt) подключаться к ней. Это не совсем хорошо. > https://disk.yandex.ru/i/0H0UxnbgiMPfNg

Evgeniy1990

V0lt
Цитата: V0lt от 05 августа 2023, 17:01:15У меня на Win10 Ютуб играет нормально. Ссылка.
1. Берем вашу ссылку
2. Добавляем ее в плеер
3. Запускаем ее
4. Перезапускаем ее несколько раз, пока не произойдет подключение внешнего парсера, вместо встроенного

Вот как это выглядит. После n-количества перезапуска данной ссылки, подключается внешний парсер YouTube, вместо встроенного. А должен всегда подключаться именно встроенный парсер YouTube.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Ничего не должен встроенный парсер - тут все зависит хостинга(в данном случае это гугл и все его сервера). Раз не получилось подключиться - значит с той стороны "не разрешили". Возможно что-то типа таймаута - попробуйте не так часто перезапускать, ну скажем не чаще чем 10 секунд после открытия - так же "отвалится" встроенный парсер ?

Более того, чтобы убедиться что именно происходит - может взять какую нибудь софтину типа HTTP Debuger, сдампить все запросы/ответы и смотреть что за ответ получал встроенный парсер (там в json формате и там наверняка будет ошибка указана и т.д.)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978
Цитата: Aleksoid1978 от 06 августа 2023, 04:33:48Возможно что-то типа таймаута - попробуйте не так часто перезапускать, ну скажем не чаще чем 10 секунд после открытия - так же "отвалится" встроенный парсер ?
В том-то и дело, что ссылки перезапускаются не так часто. Допустим, имеется некий плейлист со ссылками.
Длительность первого видео составляет 26 минут, после чего происходит автоматический переход на следующую ссылку в плейлисте. И вот как раз, при переходе, происходит задержка при открытии (более длительное открытие), т.е. вместо встроенного парсера YouTube, уже подключается внешний парсер.

Единственное, что помогает полностью избавиться от данной проблемы - это полное отключение опции "youtube-dl, yt-dlp". Тогда всегда стабильно подключается и работает встроенный парсер YouTube.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Ну тут я тогда пас. Ибо наличие опции для внешнего yt-dlp ну никак не влияет на встроенный парсер, потому что он сперва отрабатывает и только если не получилось - запускается внешний yt-dlp. Ну т.е. никак эти вещи не взаимосвязаны.
Ну баг репорт пусть конечно висит - но я помочь ничем не могу :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978
Цитата: Aleksoid1978 от 06 августа 2023, 09:20:44Ибо наличие опции для внешнего yt-dlp ну никак не влияет на встроенный парсер, потому что он сперва отрабатывает и только если не получилось - запускается внешний yt-dlp. Ну т.е. никак эти вещи не взаимосвязаны.
Получается так, что если данная опция выключена, то плеер даже и не пытается задействовать какой-либо внешний парсер YouTube и соответственно все ложится на использование исключительно встроенного парсера YouTube.

Если же данная опция включена и у нас имеются какие-либо внешние парсеры, то тут уже начинается какая-то "неразбериха" (путаница) в их использовании и подключении.

Встроенный парсер, если он по умолчанию включен, всегда должен иметь самый высочайший приоритет и не позволять подключаться внешним парсерам. А у нас получается так, что в некий определенный (произвольный) момент почему-то вместо него подключается внешний парсер, чего быть не должно. Ведь если мы выключим опцию использования внешних парсеров, то встроенному ничего не мешает продолжать свою нормальную корректную работу. Получается так, что внешние парсеры мешают нормальной работе встроенного парсера, чего быть не должно. Они должны подключаться только при определенных условиях, но ни как не отбирать возможность работы встроенного парсера YouTube.

Тут дело не в том, что встроенный парсер YouTube не смог подключиться по какой-либо причине, а почему-то внешние парсеры лезут вперед встроенного парсера. Вот в чем дело. Этого быть не должно. Поэтому и происходит мертвое зависание, потому что и встроенный и внешний парсер пытаются подключиться сразу же в один момент. Естественно, получается конфликт.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Встроенный парсер, если он включен, всегда имеет самый высочайший приоритет - ну тут просто, его код выполняется первым. А вот если он не получил список дорожек - тогда далее уже либо yt-dlp либо ссылка просто уходит в DirectShow.
Вот псевдо-код показывает наглядно принцип работы:
Если ссылка youtube и включен встроенный парсер - с помощью него парсим ссылку.
Если ссылку не распарсил встроенный парсер и включен yt-dlp - парсим с помощью yt-dlp.
Если никакой парсер не сработал - просто открываем ссылку.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Aleksoid1978

#13
Могу что посоветовать - собрать Debug билд и через DbgView смотреть вывод, когда не сработает встроенный парсер и подключится yt-dlp или что-то еще - сохранить лог и выложить, гляну.

07 августа 2023, 06:01:51
В общем как я и сказал - по какой-то непонятной причине периодически после парсинга встроенным парсером не можем подключиться к серверам гугла по этим ссылкам, они просто возвращают 403, причем тут же перезапускаем открытие - все хорошо.
На лицо явно какая-то блокировка со стороны гугла.

07 августа 2023, 06:23:13
Исправлено.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978
Цитата: Aleksoid1978 от 07 августа 2023, 02:56:06В общем как я и сказал - по какой-то непонятной причине периодически после парсинга встроенным парсером не можем подключиться к серверам гугла по этим ссылкам, они просто возвращают 403, причем тут же перезапускаем открытие - все хорошо.
На лицо явно какая-то блокировка со стороны гугла.
Вот только есть одно НО: как я уже говорил ранее, стоит только отключить опцию использования внешних парсеров, как тут же получаем нормальную и корректную работу встроенного парсера YouTube, без всякой ошибки 403 и прочих. Я специально это проверял, перезапуская различные ссылки несколько раз. И всегда они открывались мгновенно, используя исключительно встроенный парсер YouTube. Такие вот "чудеса"... Словно ошибка 403 проявляется только при включенной опции использования внешних парсеров. Иначе это не объяснить.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.