LINUX.ORG.RU

Фикс yt-dlp dzen.ru 2024-11-04

 , ,


0

2

Оно опять сломалось.

Сам патч https://firk.cantconnect.ru/yt-dlp/yt-dlp-fix-dzen-20241104.patch

Пропатченая версия yt-dlp если кому лень: https://firk.cantconnect.ru/yt-dlp/yt-dlp-2024.10.22-patched

Как патчить вручную:

Кладём yt-dlp в текущую директорию

7z x yt-dlp # unzip ругается на шебанг, поэтому 7z
patch -p0 < yt-dlp-fix-dzen-20241104.patch
zip -r yt-dlp.patched.zip __main__.py yt_dlp
echo '#!/usr/bin/env python3' > yt-dlp.patched
cat yt-dlp.patched.zip >> yt-dlp.patched 
chmod +x yt-dlp.patched

Если кто-то отправит им его в этот баг https://github.com/yt-dlp/yt-dlp/issues/11385 я не против

В ходе патчинга обнаружил неудобство: dzen спамит ссылками на якобы разные форматы, из-за чего список раздувается в несколько раз. Убрал форматы «AudioMute» оттуда (для mpd они вообще полностью дублируют обычные т.к. аудиострим там отдельный и так, для m3u8 - не дублируют, если кому надо можете раскомментить нужную строку в патче там комментарий указан об этом). И ещё он каждый m3u8 формат репортит 4 раза не знаю зачем - как это убрать я не знаю, по факту надо добавить в игнор урлы с GET-параметром redundant в мастер-файле m3u8 (его парсинг за пределами парсинга дзена, я его не трогал).

★★★★★
Ответ на: комментарий от krasnh

Есть подозрение что без пуллреквеста никто шевелиться не будет. Там висят «patch available» ещё с давних времён большое количество, ну и описание этого тега такое: «есть патч, теперь ждём когда кто-то заинтересованный PR по нему сделает».

firkax ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

а у тебя например нет

Я вообще о существовании какого-то дзена узнал только из треда про патч, исправляющий работу с ним.

Зачем чинить то, о чём не знаешь?

Зашёл, посмотрел, лучше бы и не знал. (%

mord0d ★★★★★
()

Ощущение, что ситуация на гитхабе подвисла надолго с российскими площадками. Тут или ждать, когда кто-то форкнет и будет отслеживать и патчить именно наши сайты.

Или класть в /usr/local/bin самопальный скрипт yt-dlp.sh, в который внести код из шапки темы, и который, каждый раз при обновлении, будет вносить изменения для дзен. Туда же можно добавить рабочий патч для plvideo, которому, такими темпами, скоро полгода будет, как не берут в master.
Лютый костыль, конечно.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

А я повторю что на мой взгляд ты ищещь политику там где её нет. Они просто ждут pr. Ну а только что появишиеся сайты без аудитории тоже понятно почему не добавляют, таких можно тысячи наспамить.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

там где её нет

Хз, вышел недавно yt-dlp 2024.11.18, там в изменениях строка - «rutube : Переработанные экстракторы ( #11480 ) от seproDev». Что-то делается, что-то нет.


Кстати, заметил, что у меня в браузере ссылки поменялись с vk.com/video на vkvideo.ru и естественно yt-dlp отвалился. Кинул на гитхаб упоминание об этом в одну из тем.

krasnh ★★★★
()
Ответ на: комментарий от krasnh

Потому что seproDev заинтересовался этой проблемой, написал фикс и оформил его в виде пуллреквеста. А к дзену пуллреквест никто не сделал, никто из заинтересовавшихся его делать не может или не хочет, и как итог - оно так и останется висеть, пока кто-то из разработчиков не начнёт со скуки оформлять чужие патчи.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Написал в профильной теме гитхаба несерьезно-серьезный пост о необходимости нового форка. ) Получил отклик от обоих оставшихся разрабов после ухода pukkandan.
Суть посыла, как я понял, создавайте PR и они будут рассматриваться и продвигаться в master. Так что, патч это замечательно, конечно, и возможно при старом начальстве этого было достаточно, но сейчас вот так.


В общем, будет народ со знаниями и умениями подтягиваться и подключаться к работе, и оформлять код по установленным правилам, будет и жить yt-dlp, а нет, значит нет, ‘завянет’ как youtube-dl. Имхо.

Да, у @pukkandan сейчас меньше времени на проект, но есть еще другие сопровождающие (в основном @bashonly и @seproDev), которые активно просматривают PR и объединяют их. За последний месяц было объединено более 60 PR.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 3)
Ответ на: комментарий от firkax

Я тебе про это в самом начале писал.

Ахаха, да разрабы забили на дзен, [ZenYandex] Refactored ZenYandexIE to parse metadata from var _params #11908.

Тс прям напрямую уже обращается, «@pukkandan pls approve pull request». Ну, может конечно 3 дня не срок.


Подождем мою маму? Подождем твою мать. (c)

krasnh ★★★★
()
Ответ на: комментарий от krasnh

Классика же…

  • Сообщаешь об ошибке
  • В ответ получаешь сообщение «Присылайте PR!».
  • Тратишь кучу времени на его написание/тестирование и все же отправляешь им PR.
  • Твой PR не принимают и не отвечают.
anonymous
()
Ответ на: комментарий от krasnh

Ну, может конечно 3 дня не срок.

Ну вообще-то не срок. Особенно когда отправляешь PR в рождественские праздники. Всё же у людей обычно бывают и другие дела и интересы помимо их опенсорс-проектов.

CrX ★★★★★
()

!!! обновление !!!

Оно опять сломалось (по крайней мере на некоторых видео так).

Новый патч https://firk.cantconnect.ru/yt-dlp/yt-dlp-fix-dzen-20250104.patch

Новый пропатченый ytdlp: https://firk.cantconnect.ru/yt-dlp/yt-dlp-2024.12.23-patched

С mpv не работает - видимо там надо какие-то куки слать или подобное, mpv это не умеет, он только урл видеопотока тупо забирает с помощью ffmpeg. Сам yt-dlp всё качает нормально.

Заметил что он теперь видеопотоки берёт с okcdn - кажется это однокласники. Реньше было cdn.dzen.ru.

krasnh вероятно тебе это интересно

firkax ★★★★★
() автор топика
Ответ на: комментарий от krasnh

со «знаниями и умениями» ты здесь единственный похоже

А в чём проблема потратить 15 минут на гуглёж и оформление? Это вообще ни разу не рокет саенс

anonymous
()
Ответ на: комментарий от firkax

Все-таки сделал отдельным скриптом, чтоб при обновлении сразу и патч накатывался, как предполагал и ранее:

Или класть в /usr/local/bin самопальный скрипт yt-dlp.sh, в который внести код из шапки темы, и который, каждый раз при обновлении, будет вносить изменения для дзен.

Кто считает, что незачем так ужасно костылить, велком в обсуждения выше.

С mpv не работает

У меня работает. Не знаю, может от ссылки зависит, а может влияет --cookies-from-browser=firefox в ~/.config/yt-dlp/config.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 2)
Ответ на: комментарий от firkax

Обнаружил что опять не работает. Информацию о урлах видеопотоков нашёл в другом месте, на старом стоит null. Не знаю, будет ли ещё использоваться старое - сделал чтобы искало в обоих. Возможно, старое совсем уберут и тогда оно опять сломается (надо будет тогда убрать строчки streams = и последующий цикл перебора урлов из него.

Новый патч https://firk.cantconnect.ru/yt-dlp/yt-dlp-fix-dzen-20250126.patch

Новый пропатченый ytdlp: https://firk.cantconnect.ru/yt-dlp/yt-dlp-2025.01.15-patched

С mpv по прежнему не работает.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

С mpv по прежнему не работает.

Как и писал выше, у меня как работало, так и сейчас, с новым патчем, работает с mpv:

$ mpv 'http://dzen.ru/video/watch/6749a9f27ce4e467e303a5ac'

[ffmpeg] mime type is not rfc8216 compliant
 (+) Video --vid=1 (h264 1280x720)
 (+) Audio --aid=1 (aac 2ch 44100Hz)
File tags:
 Uploader: RADIO TAPOK

AO: [pipewire] 44100Hz stereo 2ch double
VO: [gpu] 1280x720 yuv420p

AV: 00:00:07 / 00:04:30 (3%) A-V:  0.000 ct: -0.088 Cache: 108s/17MB
Exiting... (Quit)


Попробуй mpv тестово запустить с --no-config. Может что мешает в твоих конфигах, как вариант.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

Не работает, okcdn отдаёт http 400 на попытку скачать видеопоток без нужных заголовков. Возможно это из-за того у меня более старый mpv (0.32.0 из debian 11) или ffmpeg, может быть новые версии уже научились заголовки (куки или ещё что-то) из ytdl пробрасывать.

Можешь проверить у себя: открой исходник дзеновской страницы (в браузере, или его можно скачать wget-ом если сохранить куки и повторить запрос с их подгрузкой), найти в нём поиском по слову okcdn урл видеопотока (там всего два урла, один повторяется два раза, второй три, всего 5 вхождений получается) и попробуй этот урл или скачать wget-ом или открыть в плеере. У меня от этого получается http 400, а mpv делает то же самое и получает такой же результат.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

okcdn

Да, с прямой ссылкой не взаимодействет ни wget, ни сам mpv, (yt-dlp качает без вопросов). Причем, в выхлопе mpv -v видно [ffmpeg] https: Opening 'https://vd410.okcdn.ru/expires/... и там нет ошибок.

Возможно это из-за того у меня более старый mpv (0.32.0 из debian 11) или ffmpeg

Это можно проверить с 0.39.0*.AppImage, при желании.

krasnh ★★★★
()