Мини-хостинг видео на SvelteKit/SQLite: загрузка роликов, теги, просмотр и фильтр по тегам. API на file-based endpoints, хранение в mydatabase.db, загрузка файлов в static/videos.
pnpm install # или npm/yarn
cp .env.example .env
pnpm dev
По умолчанию база mydatabase.db создаётся рядом с проектом. Видео складываются в static/videos.
POST /api/add-video — загрузка видео (FormData: title, description, tags[], video_file).GET /api/videos — все видео с тегами.GET /api/videos/:id — карточка с тегами.GET /api/videos-by-tag/:tag/:page/:limit — пагинация по тегу.GET /api/tags — список всех тегов.GET /api/home — последние 6 видео.# создать ролик
curl -F "title=Demo" -F "description=short" -F "tags[]=nasa" -F "[email protected]" \
http://localhost:5173/api/add-video
# список роликов и конкретный id
curl http://localhost:5173/api/videos
curl http://localhost:5173/api/videos/1
# ролики по тегу
curl http://localhost:5173/api/videos-by-tag/nasa/1/10
BASE_URL в .env для отдачи файлов (используется на страницах просмотра).npm test) покрывают домашнюю страницу загрузки.npm run lint, npm run format).pnpm build
pnpm preview
npm run lint, npm run formatnpm test (Vitest, jsdom)ci.yml) — lint + tests on Node 18.