Initial commit of YouTube Downloader application, including core functionality for downloading videos, user authentication, and Docker support. Added configuration files, environment setup, and basic UI components using Astro.js and Tailwind CSS.
This commit is contained in:
86
install.js
Normal file
86
install.js
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import { execSync } from 'child_process';
|
||||
import { existsSync, writeFileSync } from 'fs';
|
||||
import { join } from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { dirname } from 'path';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
console.log('🚀 YouTube Downloader - Installation\n');
|
||||
|
||||
// Prüfe Node.js Version
|
||||
const nodeVersion = process.version;
|
||||
const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0]);
|
||||
if (majorVersion < 20) {
|
||||
console.error('❌ Node.js Version 20 oder höher ist erforderlich.');
|
||||
console.error(` Aktuelle Version: ${nodeVersion}`);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log(`✅ Node.js Version: ${nodeVersion}\n`);
|
||||
|
||||
// Schritt 1: npm install
|
||||
console.log('📦 Installiere Dependencies...');
|
||||
try {
|
||||
execSync('npm install', { stdio: 'inherit', cwd: __dirname });
|
||||
console.log('✅ Dependencies installiert\n');
|
||||
} catch (error) {
|
||||
console.error('❌ Fehler beim Installieren der Dependencies');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Schritt 2: Prüfe yt-dlp
|
||||
console.log('🔍 Prüfe yt-dlp Installation...');
|
||||
let ytdlpInstalled = false;
|
||||
try {
|
||||
execSync('yt-dlp --version', { stdio: 'ignore' });
|
||||
ytdlpInstalled = true;
|
||||
console.log('✅ yt-dlp ist bereits installiert\n');
|
||||
} catch (error) {
|
||||
console.log('⚠️ yt-dlp ist nicht installiert');
|
||||
console.log('\n📥 Bitte installiere yt-dlp:');
|
||||
console.log(' macOS: brew install yt-dlp');
|
||||
console.log(' Linux: sudo apt-get install yt-dlp');
|
||||
console.log(' Windows: pip install yt-dlp');
|
||||
console.log(' Oder: pip install yt-dlp (funktioniert auf allen Plattformen)\n');
|
||||
}
|
||||
|
||||
// Schritt 3: Erstelle .env Datei falls nicht vorhanden
|
||||
const envPath = join(__dirname, '.env');
|
||||
if (!existsSync(envPath)) {
|
||||
console.log('📝 Erstelle .env Datei...');
|
||||
const envContent = `LOGIN_USERNAME=admin
|
||||
LOGIN_PASSWORD=change-me-in-production
|
||||
DOWNLOAD_DIR=./downloaded
|
||||
SESSION_SECRET=change-me-in-production-$(Date.now())
|
||||
`;
|
||||
writeFileSync(envPath, envContent);
|
||||
console.log('✅ .env Datei erstellt');
|
||||
console.log('⚠️ WICHTIG: Bitte ändere LOGIN_PASSWORD und SESSION_SECRET in der .env Datei!\n');
|
||||
} else {
|
||||
console.log('✅ .env Datei existiert bereits\n');
|
||||
}
|
||||
|
||||
// Schritt 4: Erstelle downloaded Verzeichnis
|
||||
const downloadDir = join(__dirname, 'downloaded');
|
||||
if (!existsSync(downloadDir)) {
|
||||
console.log('📁 Erstelle Download-Verzeichnis...');
|
||||
execSync(`mkdir -p "${downloadDir}"`, { cwd: __dirname });
|
||||
console.log('✅ Download-Verzeichnis erstellt\n');
|
||||
} else {
|
||||
console.log('✅ Download-Verzeichnis existiert bereits\n');
|
||||
}
|
||||
|
||||
console.log('✨ Installation abgeschlossen!\n');
|
||||
console.log('📋 Nächste Schritte:');
|
||||
console.log(' 1. Bearbeite die .env Datei und setze LOGIN_PASSWORD und SESSION_SECRET');
|
||||
if (!ytdlpInstalled) {
|
||||
console.log(' 2. Installiere yt-dlp (siehe Anweisungen oben)');
|
||||
console.log(' 3. Starte die Anwendung mit: npm run dev');
|
||||
} else {
|
||||
console.log(' 2. Starte die Anwendung mit: npm run dev');
|
||||
}
|
||||
console.log(' 4. Öffne http://localhost:4321 im Browser\n');
|
||||
|
||||
Reference in New Issue
Block a user