Mais um site de sincronização de vídeo que atualmente oferece suporte ao Youtube, DailyMotion Vimeo Soundcloud e vídeos hospedados em seu próprio servidor de arquivos de sua propriedade totalmente legal
Este projeto surgiu da minha busca por algo que permitisse ao meu grupo de amigos assistir vídeos juntos, desde uma coleção aleatória de clipes do YouTube até filmes longos. Todos os outros serviços não suportavam a reprodução de arquivos mp4 ou tinham recursos que não eram necessários, por exemplo, bate-papo. Este é um pequeno webapp que não precisa de chaves de API para ser configurado e os usuários não precisam criar nenhuma conta. Basta criar uma sala, compartilhar um link e as pessoas poderão participar.
O bot suporta apenas comandos de barra Lista completa de comandos
- /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 foi testado com os seguintes URLs. Outros sites podem funcionar na interface do usuário, mas não por meio do bot.
Watch2gether pode salvar playlists personalizadas sem torná-las públicas no YouTube.
Este aplicativo é empacotado como um contêiner docker. Você pode executá-lo com
docker run -d -p 8080:8080 robrotheram/watch2gether
app.sample.env
por Discord Bot e credenciais de cliente OAuth Siga estas etapas para substituir os valores de espaço reservado no arquivo app.sample.env
pelas credenciais reais obtidas na criação de um bot Discord e cliente OAuth2:
Crie um bot Discord:
Crie um cliente OAuth2:
http://localhost:8080/auth/callback
). Substitua os valores em app.sample.env
:
app.sample.env
e renomeie-o para app.env
.CHANGEME
) pelos valores correspondentes obtidos na criação do bot Discord e do cliente 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
e YOUR_OAUTH2_CLIENT_SECRET
pelos valores reais obtidos no Discord Developer Portal.Salvar alterações:
app.env
. docker-compose.yml
Se estiver usando o Docker, você pode configurar seu arquivo docker-compose.yml
para incluir as variáveis ambientais necessárias. Aqui está um exemplo:
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
Para executar atrás de um proxy, você precisará encaminhar websoctes e também http. Abaixo está um exemplo de configuração do 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;
}
}
Este projeto usa um servidor conectado com um frontend de reação. Construído com:
vá 1,15+
Fio v1.22.10
Estrutura da interface do usuário:
Antd v4.9+
Existe um arquivo make útil que irá construir o servidor, a interface do usuário e o contêiner.
make build