Eine weitere Website zur Videosynchronisierung, die derzeit YouTube, DailyMotion Vimeo Soundcloud und Videos unterstützt, die auf Ihrem eigenen Dateiserver gehostet werden, der Ihnen völlig legal gehört
Dieses Projekt entstand aus meiner Suche nach etwas, das es meiner Gruppe von Freunden ermöglichen würde, gemeinsam Videos anzusehen, von der zufälligen Sammlung von YouTube-Clips bis hin zu langen Filmen. Alle anderen Dienste unterstützten die Wiedergabe von MP4-Dateien nicht oder verfügten über nicht benötigte Funktionen, beispielsweise Chat. Für diese kleine Webanwendung müssen keine API-Schlüssel eingerichtet werden und Benutzer müssen keine Konten erstellen. Erstellen Sie einfach einen Raum, teilen Sie einen Link und andere können beitreten.
Bot unterstützt nur Slash-Befehle. Vollständige Liste der Befehle
- /join : Join Bot to a voice channel
- /leave : Disconnect Bot from channel
- /pause : Pause Video
- /skip : Skip to next video in the Queue
- /play : Play Video
- /stop : Stop Video
- /list : List videos in the Queue
- /add <video> : Add Video to Queue
- /playlist load <name>
- /now : Current Status of what is playing
Watch2gether wurde mit der folgenden URL getestet. Andere Websites funktionieren möglicherweise in der Benutzeroberfläche, jedoch nicht über den Bot.
Watch2gether kann benutzerdefinierte Wiedergabelisten speichern, ohne sie auf YouTube öffentlich zu machen.
Diese Anwendung ist als Docker-Container verpackt. Sie können es mit ausführen
docker run -d -p 8080:8080 robrotheram/watch2gether
app.sample.env
durch Discord Bot- und OAuth-Client-Anmeldeinformationen Befolgen Sie diese Schritte, um die Platzhalterwerte in der Datei app.sample.env
durch die tatsächlichen Anmeldeinformationen zu ersetzen, die Sie beim Erstellen eines Discord-Bots und eines OAuth2-Clients erhalten haben:
Erstellen Sie einen Discord-Bot:
Erstellen Sie einen OAuth2-Client:
http://localhost:8080/auth/callback
). Werte in app.sample.env
ersetzen:
app.sample.env
und benennen Sie sie in app.env
um.CHANGEME
) durch die entsprechenden Werte, die Sie beim Erstellen des Discord-Bots und des OAuth2-Clients erhalten haben: DISCORD_TOKEN=YOUR_DISCORD_BOT_TOKEN
DISCORD_CLIENT_ID=YOUR_OAUTH2_CLIENT_ID
DISCORD_CLIENT_SECRET=YOUR_OAUTH2_CLIENT_SECRET
SESSION_SECRET=ANY_RANDOM_STRING_FOR_SESSION_SECURITY
YOUR_DISCORD_BOT_TOKEN
, YOUR_OAUTH2_CLIENT_ID
und YOUR_OAUTH2_CLIENT_SECRET
durch die tatsächlichen Werte ersetzen, die Sie vom Discord Developer Portal erhalten haben.Änderungen speichern:
app.env
. docker-compose.yml
konfigurieren Wenn Sie Docker verwenden, können Sie Ihre docker-compose.yml
Datei so konfigurieren, dass sie die erforderlichen Umgebungsvariablen enthält. Hier ist ein Beispiel:
environment :
- DISCORD_TOKEN=YOUR_DISCORD_BOT_TOKEN
- DISCORD_CLIENT_ID=YOUR_OAUTH2_CLIENT_ID
- DISCORD_CLIENT_SECRET=YOUR_OAUTH2_CLIENT_SECRET
- SESSION_SECRET=ANY_RANDOM_STRING_FOR_SESSION_SECURITY
Für die Ausführung hinter einem Proxy müssen Sie sowohl Websoctes als auch http weiterleiten. Unten finden Sie eine Beispiel-Nginx-Konfiguration
server {
server_name watch2gether.<YOUR DOMAIN>;
listen 80;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 90;
}
}
Dieses Projekt verwendet einen Server mit einem React-Frontend. Gebaut mit:
gehen 1,15+
Garn v1.22.10
UI-Framework:
Antd v4.9+
Es gibt eine praktische Make-Datei, die den Server, die Benutzeroberfläche und den Container erstellt.
make build