Thanks for helping improve TunarrTube. For substantial changes, open an issue first so the approach and product scope can be agreed before implementation.
By participating in this project you agree to abide by the Code of Conduct.
Install Node.js 22 or newer, yt-dlp, and FFmpeg, then run:
npm install
npm run devSee README.md for OS-specific prerequisites and configuration. The local SQLite database and downloaded media are ignored by Git.
npm test
npm run typecheck
npm run buildKeep API routes thin, validate request bodies in lib/validation.ts, and put behavior in the relevant lib/<domain>/service.ts. Use AppError for expected failures, serialize() for responses containing BigInt, and assertWithinDirectory() before filesystem writes derived from user or database values.
Update README.md for user-facing behavior and docs/ARCHITECTURE.md for changes to routing, integrations, persistence, schema, or deployment. Add a committed Prisma migration for schema changes.
Read SECURITY.md. Do not include credentials, signed video URLs, personal media, databases, or logs containing private data in an issue or pull request.