Encore un autre site Web de synchronisation vidéo qui prend actuellement en charge Youtube, DailyMotion Vimeo Soundcloud et les vidéos hébergées sur votre propre serveur de fichiers que vous possédez totalement légalement.
Ce projet est né de ma quête de trouver quelque chose qui permettrait à mon groupe d'amis de regarder des vidéos ensemble, de la collection aléatoire de clips YouTube aux longs films. Tous les autres services ne prenaient pas en charge la lecture de fichiers mp4 ou possédaient des fonctionnalités non requises, par exemple le chat. Il s'agit d'une petite application Web qui n'a pas besoin de configurer de clés API et les utilisateurs n'ont pas besoin de créer de compte. Créez simplement une salle, partagez un lien et les gens peuvent la rejoindre.
Le bot ne prend en charge que les commandes slash Liste complète des commandes
- /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 a été testé avec l'URL suivante. D'autres sites peuvent fonctionner dans l'interface utilisateur mais pas via le bot.
Watch2gether peut enregistrer des listes de lecture personnalisées sans les rendre publiques sur YouTube.
Cette application est présentée sous forme de conteneur Docker. Vous pouvez l'exécuter avec
docker run -d -p 8080:8080 robrotheram/watch2gether
app.sample.env
par Discord Bot et les informations d'identification du client OAuth Suivez ces étapes pour remplacer les valeurs d'espace réservé dans le fichier app.sample.env
par les informations d'identification réelles obtenues lors de la création d'un bot Discord et d'un client OAuth2 :
Créez un robot Discord :
Créez un client OAuth2 :
http://localhost:8080/auth/callback
). Remplacer les valeurs dans app.sample.env
:
app.sample.env
et renommez-le en app.env
.CHANGEME
) par les valeurs correspondantes obtenues lors de la création du bot Discord et du client OAuth2 : 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
et YOUR_OAUTH2_CLIENT_SECRET
par les valeurs réelles obtenues à partir du portail des développeurs Discord.Enregistrer les modifications :
app.env
. docker-compose.yml
Si vous utilisez Docker, vous pouvez configurer votre fichier docker-compose.yml
pour inclure les variables d'environnement nécessaires. Voici un exemple :
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
Pour fonctionner derrière un proxy, vous devrez transférer des websoctes ainsi que http. Vous trouverez ci-dessous un exemple de configuration nginx
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;
}
}
Ce projet utilise un serveur écrit avec une interface de réaction. Construit avec :
aller 1.15+
Fil v1.22.10
Cadre d'interface utilisateur :
Antd v4.9+
Il existe un fichier make pratique qui construira le serveur, l'interface utilisateur et le conteneur.
make build