Puente personalizado de TikTok
Conecta Vfinity a un conector de TikTok LIVE que ejecutes tú mismo, en lugar del puente integrado
Normalmente, Vfinity inicia su propio asistente de TikTok cuando te conectas. Si ya ejecutas un conector, como TikFinity o uno desarrollado por ti, Vfinity puede leer los eventos de TikTok LIVE directamente desde su WebSocket.
Se inicia con Vfinity y se comunica con él de forma privada, sin abrir ningún puerto. Puede volver a unirse a un LIVE interrumpido, esperar a que comience tu directo y notificar los roles de cada espectador.
Se conecta a un servidor WebSocket que mantienes en ejecución. Vfinity lee cualquier evento que este envíe, y tu conector decide cómo y cuándo unirse al LIVE.
Tus eventos, alertas, lanzamientos, metas y clasificaciones funcionan exactamente igual de ambas formas. Twitch, Kick y YouTube no se ven afectados por esta opción.
Cambiar a tu conector
Desconectar TikTok
El tipo de conexión queda bloqueado mientras TikTok esté conectado. Haz clic primero en Desconectar en la tarjeta de TikTok LIVE en AjustesConexiones.
Elegir WebSocket personalizado
En la misma tarjeta, abre Conexión avanzada de TikTok y establece Tipo de conexión en WebSocket personalizado (TikFinity u otro).
Introducir su dirección
Rellena Host de WebSocket y Puerto de WebSocket para que coincidan con tu conector.
Vfinity viene configurado por defecto con localhost y 21213.
Conectar
Inicia tu conector y haz clic en Conectar al LIVE. Vfinity se conectará a
ws://host:puerto y considerará la sala como unida en cuanto se abra el socket.
El asistente integrado no abre ningún puerto propio, por lo que nada en Vfinity compite con tu conector por su puerto.
Lo que Vfinity envía a tu conector
Si el campo Nombre de usuario de TikTok está relleno, Vfinity solicita a tu conector unirse a ese LIVE en cuanto se abre el socket:
{ "command": "connect", "username": "tu_nombre" }Deja el nombre de usuario vacío si tu conector ya sabe a qué LIVE debe unirse.
Al hacer clic en Actualizar lista de regalos, se envía {"command":"getGifts"}.
Responde con un mensaje giftList cuyo data sea una lista de regalos, cada uno con
id, name, diamondCount e imageUrl.
Lo que envía tu conector
Envía un objeto JSON por mensaje, indicando el evento y sus datos:
{
"event": "gift",
"data": {
"uniqueId": "mika_22",
"nickname": "Mika",
"profilePictureUrl": "https://example.com/mika.jpg",
"giftId": 5655,
"giftName": "Rose",
"diamondCount": 1,
"repeatCount": 5,
"giftType": 1,
"repeatEnd": true
}
}type funciona en lugar de event. Un mensaje sin data se interpreta como los datos
en sí mismos. Los números también pueden enviarse como cadenas numéricas, al estilo en
que TikTok envía contadores grandes.
event | Campos que lee Vfinity |
|---|---|
gift | el espectador, giftId, giftName, diamondCount, repeatCount, giftType, repeatEnd, giftPictureUrl |
chat | el espectador, comment |
like | el espectador, likeCount, totalLikeCount |
follow, share | el espectador |
subscribe | el espectador, subMonth, gifted |
question | el espectador, questionText |
envelope | el espectador, coins, people |
roomUser | viewerCount |
roomStats | followerCount, viewerCount, totalLikeCount, title |
También admite member, social, emote, superFan, battle y
goalUpdate con la misma estructura con la que los envía el puente integrado de Vfinity.
Cualquier nombre de evento desconocido será ignorado.
El espectador
Cada evento de espectador comienza con los mismos campos: uniqueId (el @handle),
nickname, y opcionalmente userId y profilePictureUrl. Un espectador sin
uniqueId se mostrará como "unknown".
Para que las reglas de roles funcionen, añade un objeto roles con cualquiera de
isModerator, isSubscriber, isSuperFan, isFollower e isOwner en formato booleano
(true o false), y followRole, gifterLevel o teamMemberLevel como números.
Omite lo que no conozcas: un rol ausente cuenta como desconocido, nunca como false,
y una regla que lo requiera no se cumplirá.
Combos de regalos
TikTok envía un regalo combo (giftType 1) muchas veces mientras el espectador sigue
tocando la pantalla. Envía esas actualizaciones con repeatEnd: false, y un último
mensaje con repeatEnd: true. Vfinity reacciona únicamente al último, por lo que un
combo de 5 rosas cuenta una sola vez como 5 rosas. Sin giftType o repeatEnd,
cada mensaje de regalo contará de forma independiente.
Probar con un servidor pequeño
Este servidor Node.js hace las veces de conector. Imprime lo que envía Vfinity y responde con un mensaje de chat y un combo de rosas.
// npm install ws
const { WebSocketServer } = require('ws');
const server = new WebSocketServer({ port: 21213 });
server.on('connection', (socket) => {
socket.on('message', (raw) => console.log('Vfinity dice', raw.toString()));
const viewer = { uniqueId: 'testviewer', nickname: 'Test Viewer' };
socket.send(JSON.stringify({ event: 'chat', data: { ...viewer, comment: 'hello' } }));
socket.send(JSON.stringify({
event: 'gift',
data: { ...viewer, giftId: 5655, giftName: 'Rose', diamondCount: 1,
repeatCount: 5, giftType: 1, repeatEnd: true },
}));
});Ejecútalo, conecta Vfinity a localhost y 21213, y ambos eventos aparecerán en
el registro de eventos del Panel.
Lo que requiere el puente integrado
Reconectarse al LIVE automáticamente y Esperar a que comience el LIVE son
características exclusivas del puente integrado. Con un conector personalizado, la
tarjeta lo indicará en su lugar, y tiktok.connect de la API local las ignorará.
La reconexión a TikTok dependerá de tu conector.
Si la conexión falla o se agota el tiempo de espera, comprueba que tu conector esté en ejecución y escuchando en el host y puerto especificados. Vfinity desiste de una conexión que no se abra en un plazo de 10 segundos.
