You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
С одной стороны у меня получилось всё собрать на моей системе с Arch Linux/uv/fish/Wayland/Hyprland/Kitty
Естественно последовательность команд будет отличаться от Debian-based/pip/venv/bash, для начала я воспроизведу последовательность команд, при помощи которых у меня получилось осуществить сборку на моей системе:
Сборка
1. Клонирование
mkdir-p ~/git
cd ~/git
git clone https://github.com/HelpFreedom/youthub.git
cd youthub
Сборка команадами из README у меня упала из-за несовместимости очень старого FFmpeg 4.3.9 (2020 год) и новейшей библиотеки libdav1d (1.5.3), которая стоит у меня на Arch.
API Dav1dSettings изменился, поэтому ошибки:
n_tile_threads / n_frame_threads
DAV1D_MAX_TILE_THREADS и т.д.
Grok Heavy предложил мне такое Решение:
просто отключаем поддержку AV1 (libdav1d). Для YouTube она не нужна (достаточно H.264 + VP9).
Пока собирал именно на той версии 4.3.9, которая прописана в Readme, потом попробую на самой последней.
Переходим в папку и собираем:
# 1. Заходим в папку ffplay-ytcd ffplay-yt
# 2. Скачиваем и распаковываем FFmpeg заново (если нужно)mkdir-p src &&cd src
wget -q https://ffmpeg.org/releases/ffmpeg-4.3.9.tar.xz
tar xf ffmpeg-4.3.9.tar.xz
cd ffmpeg-4.3.9
# 3. Копируем патченный ffplay.ccp ../../ffplay.c fftools/ffplay.c
# 4. НОВАЯ КОНФИГУРАЦИЯ (БЕЗ libdav1d)
./configure \--disable-everything\--enable-gpl--enable-version3\--enable-decoder=h264,vp9,opus,aac,mp3,mjpeg,png \--enable-demuxer=matroska,mov,webm \--enable-protocol=file,pipe,unix,fd \--enable-filter=aresample,scale,atempo,volume \--enable-parser=h264,vp9,opus,aac \--enable-libopus\--enable-sdl2--enable-ffplay\--enable-indev=alsa \--disable-doc--disable-htmlpages--disable-manpages\--disable-ffmpeg--disable-ffprobe# 5. Собираем (быстро, потому что без dav1d)make ffplay -j$(nproc)
# 6. Копируем бинарникmkdir-p ../../bin
cp ffplay ../../bin/ffplay-yt
cd ../../
7. Запуск (в активированном окружении)
python grid_demo.py
Запуск
Warning
Я тут по невнимательности запостил свой токен авторизации, но к счастью он одноразовый. Но в целом такая невнимательность несёт риски. Всем кто читает: будьте внимательнее и не повторяйте моёй ошибки.
(youthub) mega@vivobook ~/git/youthub (main)
🦀🐟 python grid_demo.py
[grid] loading home + watch-next pivot…
+-- YouTube TV pairing --------------------------------------
| Open: https://www.google.com/device
| Code: DPB-HWF-LCWF
| Waiting for activation... (Ctrl-C to cancel)
+------------------------------------------------------------
Traceback (most recent call last):
File "/home/mega/git/youthub/grid_demo.py", line 1262, in <module>
sys.exit(main())
^^^^^^
File "/home/mega/git/youthub/grid_demo.py", line 892, in main
initial_videos, initial_shelf_of = load_feed_combined()
^^^^^^^^^^^^^^^^^^^^
File "/home/mega/git/youthub/grid_demo.py", line 260, in load_feed_combined
with innertube.InnerTube() as it:
^^^^^^^^^^^^^^^^^^^^^
File "/home/mega/git/youthub/youthub/innertube.py", line 70, in __init__
self._tokens = tokens or auth.get_tokens()
^^^^^^^^^^^^^^^^^
File "/home/mega/git/youthub/youthub/auth.py", line 168, in get_tokens
return login_interactive()
^^^^^^^^^^^^^^^^^^^
File "/home/mega/git/youthub/youthub/auth.py", line 133, in login_interactive
td = _poll_token(client, device_code, interval)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mega/git/youthub/youthub/auth.py", line 110, in _poll_token
raise RuntimeError(f"OAuth aborted by Google: {err}")
RuntimeError: OAuth aborted by Google: expired_token
(youthub) mega@vivobook ~/git/youthub (main) [1]
🦀🐟
Мои предположения почему могло не сработать:
судя по ошибкам, гугл предположительно пофиксил маскировку под TV (через тот же ИИ, например)
В ридми, прописана жёсткая привязка к X11, который в данный момент лично я считаю уже полностью устаревшим. У меня негде тестить на X11 кроме виртуалки. На одном из моих ноутбуков Hyprland, на другом Gnome 50 из которого поддержку X11 тоже уже полностью удалили. Раньше я был фанатом openbox, но он давно не обновлялся и некоторый современный софт с ним уже несовместим, в отличие например от Wayland-base аналога labwc.
это могло произойти из-за адаптацию сбоки под мою современную систему
может быть я был уже залогиненным в используемом браузерном движке и это помешало запуску?
Вопрос
Какие именно данные я могу чекнуть/предоставить чтобы выявить в чём именно причина ошибка? Если куда то пишутся логи, то куда именно?
С одной стороны у меня получилось всё собрать на моей системе с Arch Linux/uv/fish/Wayland/Hyprland/Kitty
Естественно последовательность команд будет отличаться от Debian-based/pip/venv/bash, для начала я воспроизведу последовательность команд, при помощи которых у меня получилось осуществить сборку на моей системе:
Сборка
1. Клонирование
2. Python окружение через uv
uv venv --python 3.11 source .venv/bin/activate.fish3. Python зависимости
uv pip install curl_cffi "httpx[http2]" Pillow playwright4. Node.js зависимости
5. Системные зависимости (Arch)
6. Сборка ffplay-yt (самое важное)
Сборка команадами из README у меня упала из-за несовместимости очень старого FFmpeg 4.3.9 (2020 год) и новейшей библиотеки libdav1d (1.5.3), которая стоит у меня на Arch.
API Dav1dSettings изменился, поэтому ошибки:
Grok Heavy предложил мне такое Решение:
Пока собирал именно на той версии 4.3.9, которая прописана в Readme, потом попробую на самой последней.
Переходим в папку и собираем:
7. Запуск (в активированном окружении)
Запуск
Warning
Я тут по невнимательности запостил свой токен авторизации, но к счастью он одноразовый. Но в целом такая невнимательность несёт риски. Всем кто читает: будьте внимательнее и не повторяйте моёй ошибки.
Мои предположения почему могло не сработать:
openbox, но он давно не обновлялся и некоторый современный софт с ним уже несовместим, в отличие например от Wayland-base аналогаlabwc.Вопрос
Какие именно данные я могу чекнуть/предоставить чтобы выявить в чём именно причина ошибка? Если куда то пишутся логи, то куда именно?