initial commit
This commit is contained in:
153
docs/setup.md
Normal file
153
docs/setup.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# Setup Guide
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### System Requirements
|
||||
- Node.js 18+ and npm
|
||||
- Python 3.6+ (for yt-dlp)
|
||||
- ffmpeg (for audio conversion)
|
||||
|
||||
### Installing Dependencies
|
||||
|
||||
#### macOS
|
||||
```bash
|
||||
# Install yt-dlp
|
||||
brew install yt-dlp
|
||||
|
||||
# Install ffmpeg
|
||||
brew install ffmpeg
|
||||
```
|
||||
|
||||
#### Linux (Ubuntu/Debian)
|
||||
```bash
|
||||
# Install yt-dlp
|
||||
pip3 install yt-dlp
|
||||
|
||||
# Install ffmpeg
|
||||
sudo apt-get update
|
||||
sudo apt-get install ffmpeg
|
||||
```
|
||||
|
||||
#### Windows
|
||||
```bash
|
||||
# Install yt-dlp
|
||||
pip install yt-dlp
|
||||
|
||||
# Install ffmpeg
|
||||
# Download from https://ffmpeg.org/download.html
|
||||
# Add to PATH
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
1. **Clone the repository**
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd Downlink
|
||||
```
|
||||
|
||||
2. **Install npm dependencies**
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
3. **Verify yt-dlp installation**
|
||||
```bash
|
||||
yt-dlp --version
|
||||
```
|
||||
|
||||
4. **Verify ffmpeg installation**
|
||||
```bash
|
||||
ffmpeg -version
|
||||
```
|
||||
|
||||
## Running the Application
|
||||
|
||||
### Development Mode
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
The application will be available at `http://localhost:3000`
|
||||
|
||||
### Production Build
|
||||
```bash
|
||||
npm run build
|
||||
npm start
|
||||
```
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
Downlink/
|
||||
├── app/ # Next.js app directory
|
||||
│ ├── api/ # API routes
|
||||
│ │ ├── download/ # Download endpoint
|
||||
│ │ └── info/ # Video info endpoint
|
||||
│ ├── page.tsx # Main page
|
||||
│ └── layout.tsx # Root layout
|
||||
├── components/ # React components
|
||||
│ └── ui/ # shadcn/ui components
|
||||
├── lib/ # Utility functions
|
||||
│ ├── types.ts # TypeScript types
|
||||
│ └── youtube.ts # YouTube download logic
|
||||
├── docs/ # Documentation
|
||||
├── downloads/ # Temporary download storage (gitignored)
|
||||
└── public/
|
||||
└── downloads/ # Served download files (gitignored)
|
||||
```
|
||||
|
||||
## Environment Variables
|
||||
|
||||
Create a `.env.local` file in the project root (copy from `.env.example`):
|
||||
|
||||
```bash
|
||||
# Required if yt-dlp is not in PATH
|
||||
YT_DLP_PATH=/path/to/yt-dlp
|
||||
|
||||
# Optional: FFmpeg path (if not in PATH)
|
||||
# FFMPEG_PATH=/path/to/ffmpeg
|
||||
```
|
||||
|
||||
### Available Variables
|
||||
|
||||
- **`YT_DLP_PATH`** (optional): Full path to yt-dlp executable if not in PATH
|
||||
- Example: `YT_DLP_PATH=/Users/jeff/Desktop/yt-dlp_macos`
|
||||
- Example: `YT_DLP_PATH=/opt/homebrew/bin/yt-dlp`
|
||||
- If not set, the system will look for `yt-dlp` in PATH
|
||||
|
||||
- **`FFMPEG_PATH`** (optional): Full path to ffmpeg executable if not in PATH
|
||||
- Currently not used but reserved for future use
|
||||
|
||||
### Future Environment Variables
|
||||
- `MAX_FILE_SIZE`: Maximum file size limit
|
||||
- `CLEANUP_INTERVAL`: File cleanup interval
|
||||
- `ALLOWED_DOMAINS`: Allowed video domains
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### yt-dlp not found
|
||||
- Ensure yt-dlp is installed and in your PATH
|
||||
- Try: `which yt-dlp` to verify installation
|
||||
- Reinstall if needed: `pip3 install --upgrade yt-dlp`
|
||||
|
||||
### ffmpeg not found
|
||||
- Ensure ffmpeg is installed and in your PATH
|
||||
- Try: `which ffmpeg` to verify installation
|
||||
- Audio conversion (MP3, WAV) will fail without ffmpeg
|
||||
|
||||
### Download fails
|
||||
- Check YouTube URL format
|
||||
- Verify internet connection
|
||||
- Check server logs for detailed error messages
|
||||
- Ensure sufficient disk space in downloads directory
|
||||
|
||||
### Port already in use
|
||||
- Change port: `npm run dev -- -p 3001`
|
||||
- Or kill process using port 3000
|
||||
|
||||
## Next Steps
|
||||
|
||||
- Read [YouTube Downloader Documentation](./youtube-downloader.md)
|
||||
- Read [Transcoding Documentation](./transcoding.md)
|
||||
- Check [Agent Instructions](./AGENTS.md) for contributing guidelines
|
||||
Reference in New Issue
Block a user