A clean web app for fetching YouTube video metadata and downloading videos or audio in the format you choose.
Vidra is a Next.js YouTube downloader interface powered by yt-dlp. Paste a YouTube URL, fetch available metadata and formats, optionally provide exported session cookies for restricted videos, and download the selected video or audio stream directly from the browser.
The app is designed to be lightweight, private, and straightforward. All download work is handled server-side through API routes, while the frontend provides a minimal format picker and theme-aware UI.
- Fetches video title, channel, duration, thumbnail, view count, and available formats.
- Downloads combined video/audio, video-only streams merged with best audio, or audio-only formats.
- Supports MP4, WebM, M4A, MP3, and related output MIME handling.
- Accepts Netscape-format YouTube cookie exports for authenticated or restricted videos.
- Stores pasted cookies locally in the browser for convenience.
- Uses temporary server-side files and cleans them up after streaming downloads.
- Includes a clean responsive UI with dark-mode support.
- Provides clearer instructions when YouTube requires signed-in cookie authentication.
- Node.js compatible with Next.js 16.
- npm.
- Network access from the server to YouTube.
- A working
yt-dlpruntime throughytdlp-nodejs.
Install dependencies and start the development server.
npm install
npm run devOpen the local Next.js URL printed by the dev server, usually http://localhost:3000.
- Paste a supported YouTube URL, including regular videos, short links, or Shorts.
- Optionally paste a Netscape cookie export if the video requires an authenticated session.
- Click Fetch to load video information and available formats.
- Pick a format.
- Click Download.
Supported URL patterns include.
https://www.youtube.com/watch?v=...
https://youtu.be/...
https://www.youtube.com/shorts/...Some videos require a signed-in YouTube session. Vidra accepts cookies in Netscape HTTP Cookie File format and passes them to yt-dlp only for the current metadata or download request.
Cookies are normalized and written to temporary files on the server, then removed after use. The browser stores the pasted cookie text in local storage so you do not need to paste it again on every request.
Build the production app.
npm run buildStart a production build.
npm startProject entry points.
- Frontend page -
app/page.tsx - Metadata API -
app/api/info/route.ts - Download API -
app/api/download/route.ts
Vidra is for personal use only. Respect copyright laws, platform terms, and the rights of content owners.