Häufig gestellte Fragen
Die Fragen, die am häufigsten kommen: installieren und entfernen, was es kostet, was deinen Rechner verlässt und was es erkennen kann. Alles Ausführlichere steht in der Doku.
Installieren, aktualisieren, deinstallieren
Das Installationsskript fasst genau zwei Orte auf deinem Rechner an, und beide kannst du jederzeit löschen.
Was brauche ich, um es zu betreiben?
Einen Rechner mit Python 3.11 oder neuer, und das war es fast schon. Dasselbe reine Python-Release deckt macOS arm64, Linux amd64 und Windows amd64 ab, eine GPU ist nicht nötig. Ein systemweit installiertes ffmpeg brauchst du nur für die Pull- und Listen-Quellen (RTSP, RTMP, SRT). Eine Webcam, eine Datei oder die Browser-Oberfläche kommen ohne aus.
Wohin legt das Installationsskript seine Dateien?
An zwei Orte. ~/.cardstream ist das Installationsverzeichnis: ein virtualenv in venv/ und die Modellgewichte in models/. Die beiden Befehle cardstream-web und cardstream-client sind kleine Shims in ~/.local/bin. Sie starten die Programme aus dem venv mit bereits eingetragenen Modellpfaden, sodass jedes Flag, das du angibst, Vorrang hat. Beide Orte lassen sich mit CARDSTREAM_HOME und INSTALL_DIR verlegen. Sonst wird auf dem Rechner nichts angefasst. Vor allem ändert das Skript nie dein Shell-Profil: Liegt ~/.local/bin nicht in deinem PATH, gibt es einen Hinweis aus und überlässt die Änderung dir.
Wie aktualisiere ich auf eine neue Version?
Führe denselben Einzeiler noch einmal aus. Er installiert das aktuelle Release in das vorhandene virtualenv und schreibt die Shims neu. Gewichte, die schon in ~/.cardstream/models liegen, bleiben unberührt (sie werden nur geladen, wenn sie fehlen). Ein Update ist also ein kleiner Download und nicht noch einmal ein Viertelgigabyte. Wenn du statt des neuesten ein bestimmtes Release willst, setz CARDSTREAM_VERSION.
# derselbe Einzeiler; /install.sh leitet auf das Skript auf main um $ curl -fsSL https://cardstream.ai/install.sh | sh $ curl -fsSL https://cardstream.ai/install.sh | CARDSTREAM_VERSION=v0.5.0 sh $ cardstream-web --version
Wie deinstalliere ich es?
Mit zwei Befehlen. Der erste entfernt das virtualenv und die Modellgewichte, der zweite die beiden Shims. Mehr gibt es nicht aufzuräumen: kein Daemon, kein Anmeldeobjekt, kein Systempaket.
$ rm -rf ~/.cardstream # venv/ + models/ $ rm -f ~/.local/bin/cardstream-web ~/.local/bin/cardstream-client
Wenn du mit gesetztem CARDSTREAM_HOME oder INSTALL_DIR installiert hast, entferne stattdessen diese Pfade, und nimm sudo, falls die Shims in einem Systemverzeichnis liegen. Was du von Hand hinzugefügt hast, musst du auch selbst zurücknehmen: eine PATH-Zeile in deinem Shell-Profil, den Export von XIMILAR_API_KEY und jeden Ordner, den du --store-images übergeben hast. Sonst schreibt die App nichts in dein Home-Verzeichnis. Ob es weg ist, prüfst du mit command -v cardstream-web in einer neuen Shell. Die alte merkt sich den Fundort, bis du hash -r ausführst.
Was es kostet und was es braucht
Keine Plattform dazwischen: deine Hardware, dein Schlüssel und eine Engine, deren Aufgabe es ist, so selten wie möglich einen Aufruf abzusetzen.
Brauche ich einen Ximilar-API-Schlüssel?
Für den Standardweg der Identifikation ja, und er ist alles an Zugangsdaten, was das ganze System braucht. Hol dir einen auf ximilar.com und exportiere ihn als XIMILAR_API_KEY, bevor du startest. Wenn du stattdessen dein eigenes Erkennungssystem anschließt, brauchst du das, was dieser Endpunkt verlangt, und nichts von Ximilar.
$ export XIMILAR_API_KEY=your-key
Was kostet cardstream selbst?
Nichts. Es gibt kein Abo, keine Lizenz pro Nutzer und keine Plattformgebühr: ein Python-Paket unter einer freizügigen Lizenz, das du auf deiner eigenen Hardware betreibst, mit Detektionsgewichten, die zusammen mit den Releases unter Apache-2.0 veröffentlicht werden. Was du bezahlst, sind die Identifikationsaufrufe an den Endpunkt, den du anschließt, und diese Zahl klein zu halten, ist der ganze Sinn der lokalen Engine: etwa ein Aufruf pro neuer Karte, die du zeigst, rund hundert in einer Stunde, in der eine naive Pipeline bei 15 fps mit einem Aufruf pro Frame 54.000 auslösen würde. Das Speichern einer Show in deinem Ximilar-Konto kostet einen berechneten Session-Start pro Show; sie nach einem Neustart fortzusetzen ist kostenlos.
Kann ich meine eigenen Modelle oder mein eigenes Identifikationssystem verwenden?
Beides. Der Karten-Locator und der Identitätsfilter wählen ihr Backend selbst: der mitgelieferte RF-DETR-Export als .onnx, einer von RT-DETRv2 oder ein transformers-Verzeichnis beziehungsweise eine Hub-ID, solange du noch an einem Finetuning arbeitest. Der Identifikationsschritt dahinter ist nur ein Endpunkt. Richtest du ihn auf dein eigenes Erkennungssystem, bleiben alle Filter, Drosselungen und Cooldowns davor unverändert. Siehe die Modell-Backends und den Modellkatalog.
Hardware, Streams und Sicherheit
Es läuft neben deiner Show auf dem Rechner, von dem du ohnehin streamst.
Brauche ich eine GPU?
Nein. Die mitgelieferten Gewichte sind ONNX-Exporte, die für die CPU ausgelegt sind, und alles, was die lokale Engine tut (der Bewegungsfilter, die Drosselung der Detektion, das Embedding, das die Frage „dieselbe Karte oder eine neue?“ beantwortet), läuft auf dem Prozessor, den du schon hast. Eine GPU ist eine Option für eigene, genauere Gewichte, aber nie eine Voraussetzung für die Standardwerte.
Funktioniert es mit Whatnot oder Fanatics Live?
Ja, aber nicht, indem es sich in den Marktplatz einklinkt: Es greift das Video ab, das du ohnehin produzierst. Eine virtuelle Kamera von OBS, eine zweite RTMP- oder SRT-Ausgabe neben der, die die Plattform speist, ein RTSP-Pull von einem Encoder oder einfach eine eigene Kamera, die auf dieselbe Spielmatte zeigt. Die Anleitung für Live-Verkäufer geht alle vier Wege von Anfang bis Ende durch.
Was verlässt meinen Rechner tatsächlich?
Im clientseitigen Modus ein JPEG-Ausschnitt pro neuer Karte, nicht der Stream, nicht die Frames drumherum, nicht der Rest der Matte. Jede Entscheidung darüber, ob überhaupt etwas gesendet wird, fällt zuerst lokal. Eine Stunde Video, in der du hundert Karten zeigst, sind also hundert kleine Anfragen. Die einzige Ausnahme schaltest du selbst ein: Mit --ximilar-stream wird zusätzlich der Verlauf der Show (eine Textzeile pro Karte und der Ausschnitt, an dem sie erkannt wurde) in einer Session in deinem eigenen Ximilar-Konto gespeichert. Standardmäßig aus, und mit --no-ximilar-stream-images bleibt es bei Text.
Kann ich eine Show im Nachhinein auswerten?
Ja, wenn du sie speicherst. Starte mit --ximilar-stream NEW, und jede Karte im Verlauf geht mit ihrem Preis, ihrer Zeit im Stream und dem Ausschnitt, an dem sie erkannt wurde, in eine Session in deinem Ximilar-Konto, während die Show läuft. Öffne danach den Bereich Cardstream der Ximilar-App: der Wert der Show, ihre wertvollsten Produkte und häufigsten Sets, jede Karte mit Bild. Dort markierst du, was verkauft wurde, und korrigierst einen falschen Treffer. Mitten in der Show neu gestartet? Gib statt NEW die Session-ID an, und es geht weiter, auch wenn die Session geschlossen war. Zum Speichern in einem Team-Workspace dient --ximilar-workspace. Die Details.
$ cardstream-web --price-stats --ximilar-stream NEW Kann ich es in meinem LAN betreiben, damit ein anderer Rechner die Oberfläche öffnen kann?
Lass es. Die Browser-Oberfläche hat keine Authentifizierung und hält deinen API-Schlüssel, sie gehört also auf 127.0.0.1 und nirgendwohin sonst. Der Container bindet intern an 0.0.0.0, und deshalb veröffentlicht das dokumentierte docker run den Port nur auf 127.0.0.1. Wenn du sie wirklich von einem anderen Rechner aus brauchst, setz einen eigenen authentifizierten Tunnel davor, statt den Port zu öffnen.
$ docker run --rm -e XIMILAR_API_KEY -p 127.0.0.1:8001:8001 \ -v cardstream-models:/models cardstream
Was es erkennt und wie sicher es sich ist
Jeder Treffer kommt mit seiner Distanz, seiner Stufe und den Karten, die es stattdessen hätten sein können.
Welche Karten kann es identifizieren?
Vier Kategorien, ein Schalter. Sammelkartenspiele: Pokémon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Lorcana und rund zwanzig weitere, moderne und Vintage-Einzelkarten, direkt aus dem Stream gelesen. Sportkarten aus allen großen Sportarten, bis hin zu Parallel und Jahr. Gegradete Karten im Slab, vom Label abgelesen, ohne das Case aufzubrechen. Und Comics, nach Titel, Ausgabe und Jahr. Ein Flag wählt die Kategorie, oder du wechselst sie mitten im Stream im Einstellungsdialog. Zur vollständigen Liste.
Was passiert, wenn es die falsche Karte nennt?
Du siehst es kommen. Jeder Treffer trägt die rohe Distanz und eine Stufe High / Medium / Low (die Grenzen liegen bei 0.30 und 0.40), dazu bis zu vier alternative Karten, die es hätten sein können, und die richtige steht meist in dieser kurzen Liste. Setz einen Ergebnis-Schwellenwert, und alles darunter erreicht das Overlay gar nicht erst. Wenn eine ganze Show nur ein Spiel oder ein Set zeigt, grenzen die Vorgaben die Suche ein, bevor sie beginnt: Nenne Spiel, Set-Code oder Schriftsystem, und der Endpunkt muss sie nicht mehr raten.
Open Source. Selbst gehostet. Dein Stream, dein Stack.
Keine Plattform dazwischen, keine Lizenz pro Nutzer: Verbinde die Ximilar-API oder dein eigenes Identifikationssystem, und cardstream ruft es einmal pro neuer Karte auf statt einmal pro Frame. Ob du auf Whatnot Breaks machst, eine Show im Stil von Fanatics Live fährst oder dein eigenes Live-Commerce-Setup streamst: Starte cardstream heute Abend auf der Hardware, die du schon hast.