Долгое время меня беспокоило, что мои дети смотрят на YouTube. Мы живём за границей, и для нас важно, чтобы дети не забывали русский язык. Однако YouTube Kids доступен только на английском, а если давать детям доступ к моему аккаунту, алгоритмы быстро заполняют рекомендации мусором.
Я устал блокировать каналы и жаловаться на нерелевантный контент. Но YouTube всегда побеждал. При этом на платформе полно отличных познавательных и развивающих видео для детей.
Можно, конечно, скачивать всё вручную, но это требует слишком много времени. Я решил: хватит это терпеть!
Почему Pinchflat
После изучения разных решений я остановился на Pinchflat по нескольким причинам:
- Скачивает видео и сохраняет метаданные рядом с файлами — медиасерверу не нужно делать это самому.
- Удобный, понятный интерфейс.
- Есть пресеты для Plex и Jellyfin — всё настраивается за пару минут.
Шаг 1: Запускаем Pinchflat и Plex через Docker
services:
  pinchflat:
    image: ghcr.io/kieraneglin/pinchflat:latest
    restart: unless-stopped
    environment:
      - TZ=Europe/Stockholm
    ports:
      - 8945:8945
    volumes:
      - ./config:/config
      - /media/youtube:/downloads
  plex:
    image: linuxserver/plex:latest
    restart: unless-stopped
    ports:
      - 32400:32400/tcp
      - 8324:8324/tcp
      - 32469:32469/tcp
      - 1900:1900/udp
      - 32410:32410/udp
      - 32412:32412/udp
      - 32413:32413/udp
      - 32414:32414/udp
    environment:
      - TZ=Europe/Stockholm
      - PLEX_CLAIM=<ваш_ключ>
      - ADVERTISE_IP=http://<ваш_ip>:32400
      - PUID=1000
      - PGID=1000
    volumes:
      - ./config:/config
      - /media/youtube:/youtube
Шаг 2: Настройка медиапрофиля в Pinchflat
- Открываем Pinchflat в браузере.
- Создаём Media Profile где выбираем качество видео, формат имени файлов.
- Выбираем пресет для Plex или Jellyfin.
- Нажимем Load Preset
- Нажимаем Save.

Шаг 3: Добавление YouTube-каналов
- Выбираем Sources 
- Жмём Add Sourceи вставляем ссылку, например: https://www.youtube.com/@Soyuzmultfilm
- Имя можно оставить пустым — оно заполнится автоматически.
- Привязываем к нужному медиапрофилю.
- Настраиваем Download Cutoff Date — указываем, с какого момента скачивать видео. Например, последние 6 или 12 месяцев.
Шаг 4: (Опционально) добавляем YouTube API ключ
Это не обязательно, но помогает точнее вытаскивать метаданные.
Гайд по настройке: Generating a YouTube API key
Шаг 5: Pinchflat делает магию
Программа сначала индексирует канал, а затем скачивает видео по заданным параметрам. Ничего больше делать не нужно.
Шаг 6: Настраиваем Plex
- После появления видео заходим в Plex.
- Добавляем новую библиотеку.
- В настройках Advanced:- Указываем сканеры и метаисточник. 
 
- Указываем сканеры и метаисточник.
- Обязательно указываем, что нужно использовать локальные метаданные.  
Поздравляю!
Теперь у вас есть собственный локальный "YouTube для детей" — с нужным контентом, без рекламы и алгоритмов. Всё хранится локально и работает быстро.
Совет: заблокируйте доступ к youtube.com на уровне роутера для устройств детей, чтобы они не возвращались к оригиналу.


А ведь можно было просто замедлить. )
Внутри YouTube-аккаунта можно создавать субаккаунты они же каналы. У каждого субаккаунта свои рекомендации.
Офигенски, спасибо!
У меня появилось ещё применение. Родители в России смотрят фильмы, которые стримятся из компьютера дома в Канаде через Плекс у них на телевизоре.
ВПН итд для них сложно.
В ответ на блокировку Ютуба, попытаюсь им устроить упрощённый камерный Ютуб.
Сел делать локальный ютуб, ибо пускать ребенка в глобальный никакого желания очевидно нет, и подумал над идеей сервиса, где можно создать учетку ребенку, учетку себе, через свой настраивать белый список, а ребенку сервис будет проксировать видосы с ютуба по этому списку.
Тогда не нужно было бы возиться с селф хостингом.
В паблик такое точно нельзя пускать, ибо наверняка нарушит какие-нить правила ютуба, но внутри для своих почему бы и нет.
Было бы кому-то такое интересно здесь (как пользователям)? т.е. кто бы стал таким пользоваться? если вдруг выяснится, что есть офигеть какой спрос, можно и сделать. Функционал явно не сверхсложный, главное с проксированием нормально сделать (чтобы всякая реклама не пролезала) и вперед.
Как вариант, может быть даже с авторизацией через тот же вастрик, чтобы не возиться с инвайтами или списками доступа.
Круто! Тоже хотел такое сделать сначала, но ленивый, поэтому использую https://chromewebstore.google.com/detail/unhook-remove-youtube-rec/khncfooichmfjbepaaaebmommgaepoid?pli=1 для ребёнка и для себя, вполне хватает.
Вот тут чувак заморочился и сделал для детей NFC-карточки, которые включают нужное видео с домашнего сервера.
За неимением такого решения у Ютуб, приходится делать так. Ну и это не так много места занимает. Сейчас у меня 1600 мультиков занимает 641.57 Gb.
Может быть проще собрать все плейлисты проверенных авторов и показывать только их?

Плейлисты можно встраивать в виде iframe:
Но да, от рекомендаций/предложений Yt не избавиться таким образом.
Исходя из пословицы что "старики те же дети" я решал примерно похожую проблему для дедушки - через пол года ютуба на планшете у него стала такая помойка подписок и рекомендаций что уши в трубочку заворачивались.
У меня задача немного упрощалась что дедушка не умеет пользоваться поиском и поэтому мне достаточно было отключить рекомендации и рекламу, ограничить видео только теми каналами на которые уже подписан.
Детский режим (по описанию должен это делать) в smartube глючит (нечетные разы открытия приложения открывает мультики, а четные только свои подписки), в newpipe отсутсвует.
Оказалось решением проблемы отключение истории просмотра и поиска в гугл аккаунте https://www.reddit.com/r/nosurf/comments/1dqend1/i_foudn_a_way_to_disable_youtube_feed_youtube/?tl=ru
В случае детей остается убрать поиск или как-то выставить запрет подписываться на новые каналы.