cardstream
FAQ

Preguntas frecuentes

Las preguntas que más se repiten: instalarlo y eliminarlo, cuánto cuesta, qué sale de tu máquina y qué es capaz de nombrar. Todo lo que da para más está en el centro de documentación.

Instalar y eliminar

Instalar, actualizar, desinstalar

El script de instalación toca exactamente dos sitios de tu máquina, y ambos puedes borrarlos cuando quieras.

¿Qué necesito para ejecutarlo?

Una máquina con Python 3.11 o más reciente, y poco más. macOS arm64, Linux amd64 y Windows amd64 quedan cubiertos por la misma versión en Python puro, sin necesidad de GPU. El binario ffmpeg del sistema solo hace falta para las fuentes por pull y en modo escucha (RTSP, RTMP, SRT); una webcam, un archivo o la interfaz del navegador no lo necesitan.

¿Dónde deja las cosas el script de instalación?

En dos sitios. ~/.cardstream es la raíz de la instalación: un entorno virtual en venv/ y los pesos de los modelos en models/. Los dos comandos, cardstream-web y cardstream-client, son pequeños shims (scripts envoltorio) escritos en ~/.local/bin; ejecutan los binarios del entorno virtual con las rutas de los modelos ya rellenadas, así que cualquier flag que pases tiene prioridad. Ambas ubicaciones se cambian con CARDSTREAM_HOME e INSTALL_DIR. No se toca nada más en la máquina; en particular, el script nunca edita el perfil de tu shell: si ~/.local/bin no está en tu PATH, muestra un aviso y te deja el cambio a ti.

¿Cómo actualizo a una versión nueva?

Vuelve a ejecutar la misma línea. Instala la versión actual en el entorno virtual existente y reescribe los shims. Los pesos que ya están en ~/.cardstream/models no se tocan (solo se descargan cuando faltan), así que una actualización es una descarga pequeña, no otro cuarto de gigabyte. Para quedarte en una versión concreta en lugar de la última, define CARDSTREAM_VERSION.

# la misma línea; /install.sh redirige al script en la rama main
$ curl -fsSL https://cardstream.ai/install.sh | sh
$ curl -fsSL https://cardstream.ai/install.sh | CARDSTREAM_VERSION=v0.5.0 sh
$ cardstream-web --version

¿Cómo lo desinstalo?

Dos comandos. El primero elimina el entorno virtual y los pesos de los modelos; el segundo, los dos shims. No hay nada más que limpiar: ni demonios, ni elementos de inicio de sesión, ni paquetes del sistema.

$ rm -rf ~/.cardstream # venv/ + models/
$ rm -f ~/.local/bin/cardstream-web ~/.local/bin/cardstream-client

Si instalaste con CARDSTREAM_HOME o INSTALL_DIR definidos, elimina esas rutas en su lugar, y usa sudo si pusiste los shims en un directorio del sistema. Lo que añadiste a mano sigue siendo cosa tuya: una línea de PATH en el perfil de tu shell, el export de XIMILAR_API_KEY y cualquier carpeta que pasaras a --store-images. La aplicación no escribe nada más en tu directorio personal. Comprueba que ha desaparecido con command -v cardstream-web en una shell nueva; la antigua guarda la ruta en caché hasta que ejecutes hash -r.

Claves y coste

Cuánto cuesta y qué necesita

Sin plataforma intermediaria: tu hardware, tu clave y un motor cuyo trabajo es llamar fuera lo menos posible.

¿Necesito una clave de API de Ximilar?

Para la vía de identificación por defecto, sí, y es la única credencial que necesita todo el sistema. Consigue una en ximilar.com y expórtala como XIMILAR_API_KEY antes de arrancar. Si en su lugar conectas tu propio reconocedor, necesitas lo que pida ese endpoint y nada de Ximilar.

$ export XIMILAR_API_KEY=your-key

¿Cuánto cuesta cardstream en sí?

Nada. No hay suscripción, ni licencia por puesto, ni comisión de plataforma: un paquete de Python con licencia permisiva que ejecutas en tu propio hardware, con pesos de detección publicados bajo Apache-2.0 junto a cada versión. Lo que pagas son las llamadas de identificación al endpoint que conectes, y mantener ese número bajo es toda la razón de ser del motor local: aproximadamente una llamada por carta distinta que muestres, alrededor de cien en una hora en la que un pipeline ingenuo por fotograma a 15 fps dispararía 54.000. Guardar un show en tu cuenta de Ximilar añade un cargo por show, el de crear su sesión; retomarla tras un reinicio es gratis.

¿Puedo usar mis propios modelos o mi propio sistema de identificación?

Ambas cosas. El localizador de cartas y la compuerta de identidad se enrutan por backend: la exportación RF-DETR .onnx incluida, una de RT-DETRv2, o un directorio de transformers o id del hub mientras sigues iterando un ajuste fino. El paso de identificación que va detrás es solo un endpoint, así que apuntarlo a tu propio reconocedor deja intactas todas las compuertas, limitadores y tiempos de espera que tiene delante. Consulta los backends de modelos y el catálogo de modelos.

Ejecutarlo

Hardware, streams y seguridad

Corre junto a tu show, en la misma máquina desde la que ya transmites.

¿Necesito una GPU?

No. Los pesos incluidos son exportaciones ONNX dimensionadas para CPU, y todo lo que hace el motor local (la compuerta de movimiento, el limitador de detección, el embedding que responde «¿misma carta o carta nueva?») corre en el procesador que ya tienes. Una GPU es una opción para tus propios pesos de mayor precisión, nunca un requisito para la configuración por defecto.

¿Funciona con Whatnot o Fanatics Live?

Sí, aunque no conectándose al marketplace: aprovecha el vídeo que ya estás produciendo. Una cámara virtual de OBS, una segunda salida RTMP o SRT junto a la que alimenta la plataforma, un pull RTSP desde un codificador, o simplemente su propia cámara apuntando a la misma mesa. La guía de venta en directo recorre las cuatro vías de principio a fin.

¿Qué sale realmente de mi máquina?

En modo cliente, un recorte JPEG por carta distinta: ni el stream, ni los fotogramas de alrededor, ni el resto de la mesa. Toda decisión sobre si enviar algo se toma primero en local, así que una hora de vídeo en la que muestras cien cartas son cien peticiones pequeñas. La única excepción la activas tú: con --ximilar-stream, el historial del show (una fila de texto por carta más el recorte a partir del cual se identificó) se guarda además en una sesión de tu propia cuenta de Ximilar. Está desactivado por defecto, y --no-ximilar-stream-images lo deja solo en texto.

¿Puedo revisar un show después?

Sí, si lo guardas. Arranca con --ximilar-stream NEW y cada carta que aparece en el historial (con su precio, su tiempo en pantalla y el recorte a partir del cual se identificó) va a una sesión de tu cuenta de Ximilar mientras el show avanza. Después, abre la sección Cardstream de la app de Ximilar: el valor del show, sus productos más valiosos y sus sets principales, cada carta con su imagen; marca lo que se vendió y corrige una coincidencia equivocada. ¿Se reinició a mitad del show? Pasa el id de la sesión en lugar de NEW y continúa, aunque se hubiera cerrado. Para guardar en un espacio de trabajo de equipo, usa --ximilar-workspace. Los detalles.

$ cardstream-web --price-stats --ximilar-stream NEW

¿Puedo ejecutarlo en mi red local para abrir la interfaz desde otra máquina?

No lo hagas. La interfaz web no tiene autenticación y guarda tu clave de API, así que su sitio es 127.0.0.1 y ningún otro. El contenedor escucha en 0.0.0.0 internamente, y por eso el docker run documentado publica el puerto solo en 127.0.0.1. Si de verdad lo necesitas desde otro equipo, pon delante tu propio túnel autenticado en lugar de abrir el puerto.

$ docker run --rm -e XIMILAR_API_KEY -p 127.0.0.1:8001:8001 \
    -v cardstream-models:/models cardstream
Identificación

Qué nombra y con cuánta seguridad

Cada coincidencia llega con su distancia, su nivel y las cartas que podría haber sido en su lugar.

¿Qué cartas puede identificar?

Cuatro categorías, un interruptor. Juegos de cartas coleccionables: Pokémon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Lorcana y una veintena más, cartas sueltas modernas y vintage leídas directamente del vídeo. Cartas deportivas de todos los grandes deportes, hasta la paralela y el año. Cartas graduadas (slabs), leídas de la etiqueta sin abrir la funda. Y cómics, por título, número y año. Un flag elige la categoría, o el diálogo de ajustes la cambia en pleno directo. Ver la lista completa.

¿Qué pasa cuando nombra la carta equivocada?

Lo ves venir. Cada coincidencia lleva la distancia bruta y un nivel Alto / Medio / Bajo (los cortes están en 0.30 y 0.40), además de hasta cuatro cartas alternativas que podría haber sido, y la correcta suele estar en esa lista corta. Define un umbral de resultado y todo lo que quede por debajo no llegará nunca al overlay. Si todo un show es un solo juego o un solo set, los preajustes acotan la búsqueda antes de empezar: indícale el juego, el código de set o el sistema de escritura y el endpoint deja de adivinarlos.

Código abierto. Autoalojado. Tu directo, tu stack.

Sin plataforma intermediaria ni licencias por puesto: conecta la API de Ximilar o tu propio sistema de identificación y cardstream lo llama una vez por cada carta distinta, no una vez por fotograma. Da igual si haces breaks en Whatnot, llevas un show al estilo de Fanatics Live o transmites tu propio live commerce: pon cardstream en marcha esta misma noche con el hardware que ya tienes.