Music without limits, streaming without ads
MetaWave ist ein innovativer Audio-Media-Server mit Client-Anwendung, der es ermöglicht, YouTube-Playlists werbefrei und gemeinsam mit Freunden oder Kollegen zu streamen. Das System lädt automatisch monatlich Playlists herunter und streamt sie endlos im Shuffle-Modus.
MetaWave löst das Problem des gemeinsamen Musik-Streamings ohne Werbung und mit vollständiger Kontrolle über die Playlist. Jeder verbundene Client kann Songs überspringen, neu shuffeln und die Lautstärke anpassen - alles synchron für alle Teilnehmer.
- Werbefreies Streaming von YouTube-Playlists
- Synchrones Hören mit mehreren Teilnehmern
- Gemeinsame Kontrolle (Skip, Shuffle, Queue Management)
- Sichere Authentifizierung mit monatlichen Wave-Tokens
- URL-basierter Login für direkten Zugriff ohne manuelle Token-Eingabe
- Cross-Platform Client (Web, iOS, Android via Expo)
- Individuelle Lautstärkeregelung pro Client
- Push-Benachrichtigungen für neue Tokens
MetaWave/
├── app/ # Client-Anwendungen
│ ├── metawave_app/ # React Native App (Expo)
│ ├── metawave_database/ # Datenbank Setup
│ └── metawave_server/ # Backend Services
│ ├── downloader/ # YouTube Downloader Service
│ ├── radio/ # Radio Streaming Engine
│ └── shared/ # Gemeinsame Ressourcen
├── concept/ # Projekt-Dokumentation
├── docker/ # Docker Container Setup
└── README.md # Diese Datei
- Docker & Docker Compose
- Node.js 18+ (für lokale Entwicklung)
- Expo CLI (für Mobile App)
- YouTube API Cookies (für Downloads)
-
Repository klonen
git clone <repository-url> cd MetaWave
-
Environment Setup
# Folgen Sie der Anleitung in docker/README.md cd docker # Erstellen Sie die erforderlichen .env Dateien
-
Container starten
docker compose -f docker/compose.enviroment.yaml up -d
-
Client starten
cd app/metawave_app npm install npm start
Detaillierte Setup-Anweisungen finden Sie in docker/README.md.
- Frontend Client: React Native App mit Expo (Web, iOS, Android)
- Backend Server: Node.js mit Express
- Datenbank: MySQL für User-Management und Metadaten
- Downloader: Python-basierter YouTube-zu-Audio Converter
- Notification Service: Signal/WhatsApp Integration für Token-Verteilung
| Service | Technologie | Beschreibung |
|---|---|---|
| Authentication | Node.js + JWT | Monatliche Wave-Token Generation |
| Radio Engine | Node.js + WebSocket | Audio-Streaming & Kontrolle |
| Notification | Python + Signal-CLI | Token-Verteilung |
| Downloader | Python + yt-dlp | YouTube-zu-Audio Konvertierung |
| Datei | Beschreibung |
|---|---|
| DEPLOYMENT.md | Produktive Deployment-Anleitung |
| URL_LOGIN.md | URL-Parameter Login Feature |
| concept/README.md | Detaillierte Projektbeschreibung |
| concept/ENDPOINTS.md | API-Dokumentation |
| concept/DOWNLOADER_LOGIC.md | Downloader-Architektur |
| concept/URL_LOGIN_DEMO.html | Interaktive Login-Demo |
| docker/README.md | Docker Setup Guide |
| docker/GET_YT_COOKIES.md | YouTube Cookie Setup |
-
Backend starten
cd app/metawave_server/radio npm install npm start -
Frontend entwickeln
cd app/metawave_app npm install npm run web # Für Web-Development npm run ios # Für iOS Simulator npm run android # Für Android Emulator
-
Downloader testen
cd app/metawave_server/downloader pip install -r requirements.txt python download_chunk.py
Die vollständige API-Dokumentation finden Sie in concept/ENDPOINTS.md.
Wichtige Endpunkte:
POST /auth/login- Authentifizierung mit Wave-TokenGET /auth/login?wavetoken=...- URL-basierte Authentifizierung (neu!)GET /stream- Audio-Stream abrufenGET /stream/control/skip- Nächsten Song abspielenPOST /notification/signal/invite- Signal-Einladung senden
MetaWave unterstützt jetzt direkten Zugriff über URL-Parameter:
https://metawave.example.com/?wavetoken=MW202601-RADIO
Dies ermöglicht:
- Shortcuts & Bookmarks mit eingebettetem Token
- Direct Access Links für interne Tools
- Schnellzugriff ohne manuelle Token-Eingabe
Mehr Details: URL_LOGIN.md | Demo: URL_LOGIN_DEMO.html
Erstellen Sie .env Dateien für:
- Database-Konfiguration
- YouTube API Credentials
- Signal-CLI Setup
- JWT Secrets
Beispiel-Konfigurationen finden Sie in den jeweiligen Docker-Ordnern.
- Responsive Design für Desktop und Mobile
- Live-Synchronisation mit anderen Clients
- Playlist-Management
- Volume-Kontrolle
- Native iOS/Android Performance
- Push-Benachrichtigungen
- Offline-Fähigkeiten
- Gesture-basierte Kontrollen
- Wave-Token: Monatlich rotierende JWT-Token
- Sichere API: CORS und Rate-Limiting
- Firewall-Integration: Für produktive Deployments
- SSL/TLS: HTTPS für alle Verbindungen
Detaillierte Anweisungen für das produktive Deployment finden Sie in DEPLOYMENT.md.
Das Projekt nutzt ein modulares Docker-Setup:
compose.enviroment.yaml- Haupt-Orchestrationcompose.database.yaml- MySQL Setupcompose.server.yaml- Backend Servicescompose.app.yaml- Frontend Container
- Fork das Repository
- Erstelle einen Feature-Branch (
git checkout -b feature/amazing-feature) - Commit deine Änderungen (
git commit -m 'Add amazing feature') - Push zum Branch (
git push origin feature/amazing-feature) - Erstelle einen Pull Request
Dieses Projekt steht unter der LICENSE - siehe die Lizenz-Datei für Details.
Bei Fragen oder Problemen:
- Erstelle ein Issue im Repository
- Prüfe die Dokumentation in
/concept/ - Folge dem Setup-Guide in
/docker/README.md
MetaWave - Entwickelt mit ❤️ für das ultimative gemeinsame Musik-Erlebnis.

