Skip to content

gtrsh/yt-obs

Repository files navigation

YT-Observer

__  ________    ____  __
\ \/ /_  __/   / __ \/ /_  ________  ______   _____  _____
 \  / / /_____/ / / / __ \/ ___/ _ \/ ___/ | / / _ \/ ___/
 / / / /_____/ /_/ / /_/ (__  )  __/ /   | |/ /  __/ /
/_/ /_/      \____/_.___/____/\___/_/    |___/\___/_/

Описание

Приложение для работы с youtube, при помощи yt-dlp (без использования оффициального api)

Основые функции:

  • Добавление каналов и отслеживание изменений (добавление/удаление видеороликов)
  • Скачивание и хранение видео/аудио материалов
  • Работа с метаданными каналов/роликов, таких как: тэги, описание, просмотры, длительность роликов, частота постинга каналов

Tech Stack

Клиент-серверное приложение, написанное на node.js/react/ts, BullMQ для запуска yt-dlp.

Сервер:

  • Runtime: Node.js 24 with TypeScript 5.9
  • Framework: NestJS 11 + Fastify 5
  • Databases: PostgreSQL via Prisma 7, Redis cache
  • Queue: BullMQ + Redis
  • Monorepo tool: Turborepo

Клиент:

  • Framework: React 19
  • Components system: Mui 7
  • Css: tailwind 4
  • Main libs: TanStack Query/Router, ky

Архитектура

Серверная часть состоит из двух независимо запускающихся и работающих процессов:

  • main.ts — HTTP API server (NestJS + Fastify) отвечает за работу с данными + взаимодействие с FE приложением
  • worker.ts — BullMQ worker (NestJS application context без HTTP) запускает и обрабатывает вывод yt-dlp (cli утилита для работы с youtube и другими видео-хостингами)

Клиентская часть стандартно взаимодействует с сервером по rest-ful api

Backlog

На текущий момент реализовано добавление канала, получение информации о нём (существует ли канал, который пытаются отслеживать, его описание), получение списка видео канала и обновление данного списка. Для получения более подробной информации о видео (более подробные мета-данные) и скачивания требуется разработать отдельный сервис создающий и обновляющий youtube-куки, так как youtube ужесточил политики и отдаёт информацию/видео только залогиненому пользователю

  • Каналы
    • Проверка существования канала
    • Получение списка видео канала
    • Обновление списка видео канала
    • Diff списков видео
    • Поиск (advanced) по каналу и метаданным
  • Видео
    • Получение всей metadata по видео
    • Скачивание видео/аудио
    • Работа с видео/аудио при помощи ffmpeg
  • Сервис для получения/обновления cookies

Скриншоты

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 2

  •  
  •