11 Punkte von GN⁺ 2024-04-22 | 1 Kommentare | Auf WhatsApp teilen
  • Windrecorder ist eine Open-Source-App, die Bildschirmaufzeichnungen unter Windows lokal speichert, damit man sie später zurückspulen und durchsuchen kann; sie ist eher ein persönliches Erinnerungstool als eine Alternative zu Rewind/Copilot Recall
  • Der Bildschirm wird mit ffmpeg oder per Screenshot in festen Intervallen in 15-Minuten-Segmentdateien gespeichert und mit der lokalen Windows-OCR-API sowie Bild-Embeddings indexiert
  • Über eine lokale Web-UI lassen sich frühere Bildschirminhalte anhand von Fenstertiteln, Text-Keywords und Bildbeschreibungen finden; bestimmte Programme oder Bildschirmbereiche können von der Aufzeichnung ausgeschlossen werden
  • Die Datenverarbeitung erfolgt ohne Cloud ausschließlich auf dem Rechner des Nutzers, und da das Tool auf Python basiert, lassen sich Aufbau und Verhalten leicht nachvollziehen und anpassen, auch wenn die Leistung langsam sein kann
  • Das Repository nutzt derzeit eine unverschlüsselte lokale Struktur, die LLM-Funktionen sind eingeschränkt, und der praktisch nutzbare Umfang besteht vor allem aus täglichen Titelübersichten und der Suche

Bildschirmaufzeichnung und Suche per Zurückspulen

  • Windrecorder ist ein persönliches Bildschirm-Erinnerungstool, um Informationen wie Webseiten, Videos oder Chat-Nachrichten wiederzufinden, die man schon gesehen hat, später aber nur schwer erneut aufspüren kann
  • Die wichtigsten Inspirationen sind die Mac-App Rewind und Black Mirror S1E3 „The Entire History of You“
  • Die Methode der Bildschirmaufzeichnung ist einfach
    • Es verwendet ffmpeg oder Screenshots in festen Intervallen
    • Der Bildschirm wird in 15-Minuten-Segmentdateien gespeichert
    • Die Aufzeichnungen werden mit der lokalen Windows-OCR-API und Bild-Embeddings indexiert
  • Nutzer können Programme oder Bildschirmbereiche festlegen, die nicht aufgezeichnet werden sollen
  • In der lokalen Web-UI lassen sich frühere Bildschirminhalte anhand der folgenden Hinweise zurückspulen und durchsuchen
    • Fenstertitel
    • Text-Keywords
    • Bildbeschreibungen
  • Zu den Zusatzfunktionen gehören tägliche und periodische Bildschirmnutzungszeiten, tägliche Zusammenfassungen und die Erstellung einer monatlichen Lightbox

Lokal-first-Design und aktuelle Einschränkungen

  • Die gesamte Verarbeitung erfolgt ausschließlich auf dem Rechner des Nutzers und setzt keine Cloud-Speicherung oder Abonnements voraus
  • Die Struktur verbindet verschiedene Funktionen auf Python-Basis, wodurch die interne Arbeitsweise transparent ist und sich vom Nutzer leicht anpassen lässt
    • Dafür kann die Leistung langsamer sein
  • Der Entwickler ist kein professioneller Entwickler und hat das Tool aus persönlichem Interesse und für den eigenen Gebrauch erstellt
    • Nach längerer Nutzung hält er es für ausreichend ausgereift und robust
    • Issues, Diskussionen und Beiträge sind willkommen
  • Die aktuellen Nachteile sind ebenfalls klar
    • Der Datenspeicher ist offen einsehbar und nicht verschlüsselt
    • Nutzer können die strukturierten lokalen Daten frei verwenden, müssen aber auch auf ihren Schutz achten
  • LLM-Funktionen spielen keine große Rolle
    • Derzeit beschränken sich die LLM-Funktionen hauptsächlich auf die Entscheidung, ob APIs entsprechend der Nutzerabsicht aufgerufen werden sollen, und auf die Anpassung von Suchergebnissen
    • Von einem Stadium, in dem alle Daten direkt verstanden, analysiert, erinnert und entsprechend der Nutzerabsicht verarbeitet werden, ist das Tool noch weit entfernt
    • Die derzeit angebotenen täglichen Titelübersichten und Suchfunktionen markieren den realistisch umsetzbaren Umfang von Windrecorder

1 Kommentare

 
GN⁺ 2024-04-22
Hacker-News-Meinungen
  • Etwas sehr Ähnliches wurde schon vor fast 20 Jahren gebaut, einschließlich der Funktion, zu einem bestimmten Zeitpunkt in der Vergangenheit zurückzuspulen und die Ausführung von dort wieder aufzunehmen
    http://www.cs.columbia.edu/~orenl/papers/sosp07-dejaview.pdf
    DejaView war ein persönlicher Recorder für virtuelle Computer, der die gesamte Desktop-Nutzung aufzeichnete und Wiedergabe, Navigation, Suche und Wiederherstellung ermöglichte; er speicherte und indexierte Bildschirmausgaben, Checkpoints des Anwendungs-/Dateisystemzustands sowie angezeigten Text mit Kontext
    Ohne Änderungen an Anwendungen, Fenstersystem oder Betriebssystem-Kernel kombinierte es Display-/Betriebssystem-/Dateisystem-Virtualisierung und zeigte, dass kontinuierliche Aufzeichnung sowie interaktive Suche/Wiedergabe in echten Desktop-Apps ohne für Nutzer spürbaren Performanceverlust möglich sind

    • Ich frage mich, ob sie das tatsächlich gebaut oder nur ein Paper geschrieben haben. Ich würde auch gern wissen, wo man es herunterladen kann
    • Ich weiß nicht, ob die URL stimmt. Wenn man sie öffnet, heißt es, die Datei sei nicht auffindbar
  • Es gibt auch ein ähnliches Open-Source-Projekt für macOS
    https://rem.ing
    https://github.com/jasonjmcghee/rem
    Der Entwickler hat es vor drei Monaten auf HN gepostet, und es gab eine recht gute Diskussion dazu
    https://news.ycombinator.com/item?id=38787892

    • Ich bin der Macher von rem. Es wäre toll, wenn sich Leute an der Entwicklung beteiligen würden
      Es steht unter der MIT-Lizenz, und ich habe auch eine plattformübergreifende Version in Rust gestartet: https://github.com/jasonjmcghee/xrem. Sie ist aber noch in einem frühen Stadium und braucht mehr Hilfe
    • Ich frage mich, ob jemand das über längere Zeit genutzt hat. Mich würde interessieren, ob es in der Praxis wirklich hilft
    • Ich habe so etwas für den Mac lange gesucht, dann aufgegeben und mir selbst ein Skript gebaut, das alle 10 Sekunden einen Screenshot macht, plus ein Skript, das daraus mit ffmpeg ein Video zusammensetzt
      Ich würde gern beitragen, kenne aber Swift überhaupt nicht; alles, was ich gebaut habe, waren bash-Skripte, die über launchd laufen
    • Es gibt auch http://rewind.ai als Unternehmen, das dasselbe macht
  • So etwas zu bauen, wäre spannend: Meta Smart Glasses machen alle zwei Sekunden ein Foto, schicken die Bilder an einen Cloud-Server, lassen OCR und Objekterkennung/-Labeling darüberlaufen und bieten dann eine App, mit der man die Vergangenheit durchsuchen oder sich mit ihr unterhalten kann
    Dann könnte man ein LLM Dinge fragen wie: „Wo habe ich mein Portemonnaie hingelegt?“, „Habe ich gestern im Restaurant nach dem Bezahlen meine Kreditkarte zurückbekommen?“ oder „Was stand heute auf dem neuen T-Shirt meiner Tochter?“
    Wenn dazu noch Audioaufzeichnung und Transkription kämen, könnte man auch nach der in einem Meeting festgelegten Deadline, der Telefonnummer einer im Park getroffenen Person oder dem Namen des heute getroffenen Investors fragen; noch besser wäre es, wenn auch Telefonate zugänglich wären und die Aussagen der Gegenseite transkribiert und indexiert würden
    Das erinnert an die Black-Mirror-Folge „The Entire History of You“: https://en.wikipedia.org/wiki/The_Entire_History_of_You

    • Black Mirror-Folgen sind normalerweise nicht als Zukunftsvision gedacht, der man nacheifern soll
    • Ein Restaurant sollte eine Kreditkarte niemals aus dem Sichtfeld mitnehmen. Eigentlich muss das Personal die Karte gar nicht anfassen; korrekt wäre, sie beim Hinausgehen am Kassenterminal selbst durchzuziehen
    • Frame von Brilliant Labs kommt Hardware nahe, die solche Daten auf nutzerfreundliche und ziemlich unauffällige Weise realistisch bereitstellen könnte
      Ich habe es bereits vorbestellt
    • Genau das macht der viel kritisierte Humane AI Pin
  • Ich frage mich, ob jemand so etwas mit Accessibility-APIs statt OCR oder zusätzlich zu OCR gebaut hat
    Über Accessibility-APIs kann man Text direkt abrufen; alles per OCR zu erfassen wirkt wie Verschwendung
    Es könnte auch eine gute Möglichkeit sein, LLMs mit UIs zu verbinden, und solche Tools könnten ein Weg sein, Trainingsdaten zu sammeln

    • Dragon NaturallySpeaking unterstützt Sprachbefehle wie „OK klicken“ und reagiert tatsächlich entsprechend
      Das Problem, dass Microsoft Office eigene Widgets rendert, wurde gelöst, indem man die Texte von Widgets und Buttons per OCR las und so die Labels erkannte
      Solche Ansätze braucht man viel häufiger, als man denkt. Entwickler enttäuschen die Erwartungen oft und nutzen die bereitgestellten APIs nicht
    • Beim Bau eines Loom-ähnlichen Screenrecorders mit durchsuchbarem Bildschirm habe ich beides ein wenig ausprobiert; wenn man betriebssystemunabhängig sein will, sind die Unterschiede zwischen den Accessibility-APIs von Mac und Windows groß, und selbst unter Windows ist die Implementierung je nach App sehr unterschiedlich, sodass schwer zu beurteilen ist, was der Nutzer tatsächlich „gesehen“ hat
      Manche Apps lassen Kerndaten weg oder implementieren es falsch. Ich dachte, Accessibility wäre einfach, aber in der Praxis war OCR oft einfacher
    • Ich habe ein MVP eines Workflow-Recorders mit Bildschirmhistorie gebaut
      Wenn dieser Ansatz wirklich tragfähig ist, dachte ich, würden Microsoft oder Apple ihn als Teil eines Copiloten, der sich an alles erinnert und das Nutzerwissen unterstützt, direkt ins Betriebssystem integrieren
      Meine Bildschirmhistorie war nicht so fortgeschritten wie die hier erwähnte App, und ich habe sie selbst auch nicht genutzt
    • Es wäre gut, wenn man Informationen zur im Vordergrund befindlichen App als Metadaten mitspeichern könnte
  • In Notion erscheint ein Sperrbildschirm mit „JavaScript must be enabled in order to use Notion“ und „Please enable JavaScript to continue“. Wenn man NoScript verwendet, kann man wegen dieser Sperrmethode JavaScript auf der eigentlichen Website gar nicht aktivieren
    Ich wünschte, sie würden nicht auf eine statische Seite weiterleiten. Auf dieser Seite gibt es kein fallweises JavaScript, das man erlauben könnte, und die Weiterleitung erfolgt so schnell, dass man keine Gelegenheit hat, JavaScript auf der Hauptseite zu aktivieren
    Selbst wenn man notion.so selbst erlaubt, lässt sich diese Sperre nicht umgehen

    • Das ist wirklich schlecht. Etwas, das eigentlich völlig brauchbar wäre, wurde auf die schlechtestmögliche Weise umgesetzt
      Es überrascht mich auch, dass HTML Weiterleitungen ohne JavaScript erlaubt
  • Für Windows gibt es auch TimeSnapper. Es ist zwar nicht Open Source, aber der Entwickler ist gelegentlich auf Hacker News aktiv.
    https://timesnapper.com/

    • Für zeitliche Nachverfolgung auf Screenshot-Basis sowie erweitertes Tagging anhand von Fenstertiteln und manchmal geöffneten Dokumenten gibt es auch ManicTime. OCR scheint es allerdings nicht zu haben.
      https://www.manictime.com/
  • Ich erinnere mich an ein paar solcher Projekte. Das erste, das ich gesehen habe, war Savant Recall von 2014; es wurde nicht bei YC aufgenommen und daraufhin als Open Source freigegeben.
    Später übernahm es Ritter, Mitgründer von Napster, benannte es in Atlas Recall um, versah es mit einer neuen UI und erhielt 20 Millionen Dollar Finanzierung.
    Ein Jahr später wurde es jedoch plötzlich eingestellt; auf LinkedIn steht, es sei „von Xinova übernommen“ worden. Ein weiteres, von dem ich gehört habe, war Apse von 2019.

  • Sieht https://apse.io/ sehr ähnlich. Auch dort wird alles, was man auf dem Bildschirm gesehen hat, per OCR zu einem durchsuchbaren Index gemacht.
    Mir gefällt, dass windrecorder Open Source ist.

  • Laut GitHub-README liegen die Videos bei etwa 100–200 GB pro Jahr, was gar nicht so schlecht ist.

    • Mich würde interessieren, auf wie vielen Stunden pro Tag das im Schnitt basiert. Außerdem, ob textlose Szenen wie Filme oder Spiele gelöscht werden.
  • Wenn man eine Idee hat wie „Warum gibt es so eine App nicht?“, ist es für alle inspirierend, wenn jemand sie so direkt und gut umsetzt.

    • Der einfachste Weg, eine App zu finden, die X tut, ist, selbst eine neue zu bauen, sie auf HN zu posten und die Kommentare zu lesen.
    • rewind.ai ist auch so ein Beispiel; wenn man sieht, dass diese Daten dort neuerdings in einen nur cloudbasierten Speicher verschoben wurden und das Ganze in limitless.ai umbenannt wurde, ist es erfreulich, dass solche Open-Source-Alternativen auftauchen.
      Schön, dass man nicht zu Cloud-Speicherung gezwungen wird; das sage ich vermutlich als jemand, der bald kein zahlender Kunde mehr sein wird.