A maioria dos VODs no Twitch desaparecem mais cedo ou mais tarde. Seja porque sua disponibilidade expira ou porque foram explicitamente excluídos. Então, se você não terminou de assistir o VOD a tempo, o conteúdo acabou. Você pode baixar o vídeo, mas e o chat? "Twitch VOD Offline Viewer" resolve esse problema. Basta baixar o vídeo + bate-papo e reproduzi-lo como um VOD normal a qualquer momento, mesmo offline¹.
¹ Os emotes no chat só aparecerão quando as imagens puderem ser baixadas. Então, para ver os emotes, você ainda precisa ter uma conexão com a internet.
Tempo de execução do Node.js.
Recomendação: Use TwitchDownloader para baixar o vídeo desejado, consulte aba "Download VOD". Mas qualquer outra ferramenta para baixar o VOD também serve.
Qualquer codec compatível com a tag do seu navegador.
Recomendação: Use o TwitchDownloader para baixar o chat correspondente, consulte a aba "Download do Chat". Selecione "Texto" e "Relativo".
Se você gerar o arquivo de chat por outros meios, o formato esperado será:
[0:00:01] Alice: hi everyone HeyGuys [0:00:01] John: PogChamp [0:00:03] Bob: hey @Alice [0:00:07] Alice: nice to see you, Bob
Carimbo de data e hora entre colchetes (a hora pode ter um ou dois dígitos)
Espaço
Nome de usuário, seguido de dois pontos
Espaço
Mensagem
Nova linha
Mova o arquivo de vídeo baixado para /stream/video.mp4
. (Substitua o arquivo fictício.)
Mova o arquivo de bate-papo baixado para /stream/chat.txt
. (Substitua o arquivo fictício.)
Execute node chat.mjs
para iniciar um servidor HTTP Node.js que servirá mensagens de bate-papo em seu navegador.
Abra index.html
no seu navegador favorito.
Faça uma pausa a qualquer momento. A posição de jogo é lembrada e restaurada automaticamente.
Use watch.bat
para continuar (faz as etapas 4 e 5 para você).
Para ver os emotes específicos do canal, você precisará especificar o ID do canal. Há muitas maneiras de recuperar essas informações, por exemplo, usando o Twitch Channel ID Finder.
Esses emotes serão baixados automaticamente sempre que o servidor de chat for iniciado. Certifique-se de ajustar a variável CHANNEL_ID
na parte superior do arquivo de origem chat.mjs
antes de executar o servidor.
Os emotes globais do Twitch são fornecidos por padrão. No entanto, os emotes exclusivos do streamer devem ser fornecidos manualmente devido à exigência do OAuth para acessar a API do Twitch. Depois de autenticado, faça a solicitação e salve a resposta do endpoint como
em /emotes/
. Certifique-se de ajustar a variável CHANNEL_ID
na parte superior do arquivo de origem chat.mjs
antes de executar o servidor.
Crie um aplicativo por meio do console do desenvolvedor Twitch. Isso produzirá um "ID do cliente" e um "Segredo do cliente".
Solicite um token de acesso usando seu client_id
e client_secret
:
curl -L 'https://id.twitch.tv/oauth2/token' -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=client_credentials' -d 'client_id={{client_id}}' -d 'client_secret={{client_secret}}'
Armazene o valor de access_token
da resposta.
Obtenha o ID do canal:
curl -L 'https://api.twitch.tv/helix/users?login={{channel_name}}' -H 'Authorization: Bearer {{access_token}}' -H 'Client-Id: {{client_id}}'
Armazene o valor de data[0].id
( channel_id
) da resposta.
Obtenha os emotes do canal:
curl -L 'https://api.twitch.tv/helix/chat/emotes?broadcaster_id={{channel_id}}' -H 'Authorization: Bearer {{access_token}}' -H 'Client-Id: {{client_id}}'
Salve a resposta no arquivo.
Se você não se importa com nomes de usuário no chat, altere a variável CHAT_USERNAMES
no arquivo de origem index.html
para false
.
CHAT_USERNAMES = true | CHAT_USERNAMES = false |
---|---|
Breves desconexões durante a transmissão ao vivo fazem com que o registro do bate-papo fique fora de sincronia. Para corrigir esse problema, você pode ajustar a variável CHAT_OFFSET
no arquivo de origem index.html
. Atualize a página da web para aplicar as alterações.
Se você estiver usando uma extensão adblock em seu navegador, como uBlock Origin, a comunicação do servidor de bate-papo poderá ser bloqueada. Isso acontece devido ao bloqueio de conexões de localhost
. Coloque localhost:8787
na lista de permissões ou desative temporariamente a extensão.