Uncategorized

I built a self-hosted alternative to Google’s Video Intelligence API after spending about $450 analyzing my personal videos (MIT License)

A Self-Hosted Alternative to Google’s Video Intelligence API: A Personal Story

I’ve always been fascinated by the potential of video analysis, but as someone with a large collection of personal videos, I found it difficult to find specific moments within my footage. Imagine trying to search through thousands of videos for “that scene where I was riding a bike and laughing.” It was nearly impossible. That’s when I turned to Google’s Video Intelligence API, which worked perfectly, but the cost was prohibitively expensive – $450 for just a few videos. The thought of scaling to my entire library, which would cost over $1,500, was daunting, not to mention the requirement to upload all my raw personal footage to their cloud.

The Problem with Cloud-Based Video Analysis

The cost and privacy concerns associated with cloud-based video analysis led me to explore alternative solutions. I wanted a self-hosted video analysis tool that could run entirely on my own hardware, without any cloud dependency. This would not only save me money but also ensure that my personal videos remained private.

After conducting some research, I decided to build my own self-hosted video analysis tool, which I call Edit Mind. It’s a completely self-hosted solution that indexes videos locally, transcribes audio, detects objects, recognizes faces, and analyzes emotions. The tool also features semantic search, allowing me to type natural language queries like “scenes where I am happy near a campfire” and get instant results.

How Edit Mind Works

Edit Mind uses a combination of technologies to achieve its functionality. The tool is built using Electron, which provides a cross-platform desktop app, and Python, which handles the machine learning processing. The app also utilizes ChromaDB for local vector storage and FFmpeg for video processing. Additionally, Edit Mind features a plugin architecture, making it easy to extend with custom analyzers.

The workflow is straightforward: I simply drop my video library into the app, and it analyzes everything once, which takes some time but only happens once. After that, I can search naturally, and get results in seconds, even across large libraries of footage. The tool also allows me to export selected scenes as rough cuts, making it easy to create new videos.

The Benefits of Self-Hosting

Self-hosting Edit Mind provides several benefits, including privacy, cost savings, speed, customization, and offline capability. By keeping my videos on my own hardware, I ensure that they remain private and secure. The cost savings are significant, as I no longer have to pay for cloud-based video analysis. The tool is also much faster, as there are no upload or download bottlenecks. Additionally, the plugin architecture allows me to customize the tool to my needs, and the offline capability means I can use it even without an internet connection.

Current Limitations and Future Development

While Edit Mind is a powerful tool, it’s not without its limitations. The app requires decent hardware, and face recognition needs initial training. The first-time indexing process can be slow, but it’s a one-time process. The query parsing uses the Gemini API by default, but it’s easily swappable for Ollama. Despite these limitations, I’m excited about the potential of Edit Mind and plan to continue developing and improving the tool.

I hope that my story and the development of Edit Mind can inspire others to explore self-hosted video analysis solutions. Whether you’re a parent with family footage, a content creator, or a documentary maker, Edit Mind can help you find specific moments within your videos quickly and easily. The tool is available on GitHub, and I welcome feedback and contributions from the community.

Polska wersja:

Samodzielna alternatywa dla Google Video Intelligence API: Moja historia

Zawsze fascynowało mnie potencjał analizy wideo, ale jako osoba z dużą kolekcją osobistych filmów, znalazłem trudności w znalezieniu konkretnych momentów w swoich nagraniach. Wyobraź sobie, że musisz przeszukać tysiące filmów, aby znaleźć “tę scenę, gdzie jechałem rowerem i śmiałem się”. Było to niemal niemożliwe. Wtedy zwróciłem się ku Google Video Intelligence API, który działał idealnie, ale koszt był zbyt wysoki – 450 dolarów za kilka filmów. Myśl o skalowaniu mojej całej biblioteki, co kosztowałoby ponad 1500 dolarów, była przytłaczająca, nie wspominając o wymogu przesłania wszystkich surowych nagrań do ich chmury.

Problem z chmurową analizą wideo

Koszt i problemy z prywatnością związane z chmurową analizą wideo skłoniły mnie do poszukiwania alternatywnych rozwiązań. Chciałem samodzielnego narzędzia do analizy wideo, które mogłoby działać całkowicie na moim własnym sprzęcie, bez żadnej zależności od chmury. To nie tylko zaoszczędziłoby mi pieniędzy, ale także zapewniło, że moje osobiste filmy pozostaną prywatne.

Po przeprowadzeniu badań, zdecydowałem się zbudować własne samodzielne narzędzie do analizy wideo, które nazywam Edit Mind. Jest to całkowicie samodzielne rozwiązanie, które indeksuje filmy lokalnie, transkrybuje audio, wykrywa obiekty, rozpoznaje twarze i analizuje emocje. Narzędzie posiada również funkcję wyszukiwania semantycznego, która pozwala mi wpisywać zapytania w języku naturalnym, takie jak “sceny, gdzie jestem szczęśliwy w pobliżu ogniska” i uzyskać wyniki w kilka sekund.

Jak działa Edit Mind

Edit Mind wykorzystuje kombinację technologii, aby osiągnąć swoją funkcjonalność. Narzędzie jest zbudowane przy użyciu Electron, które zapewnia aplikację pulpitu cross-platform, oraz Python, który zajmuje się przetwarzaniem maszynowym. Aplikacja wykorzystuje również ChromaDB do lokalnego przechowywania wektorów i FFmpeg do przetwarzania wideo. Dodatkowo, Edit Mind posiada architekturę pluginów, która ułatwia rozszerzanie o niestandardowe analizaory.

Przepływ pracy jest prosty: po prostu upuszczam moją bibliotekę filmów do aplikacji, a ona analizuje wszystko raz, co zajmuje trochę czasu, ale dzieje się tylko raz. Po tym mogę wyszukiwać w języku naturalnym i uzyskać wyniki w kilka sekund, nawet w przypadku dużych bibliotek filmów. Narzędzie pozwala mi również wyeksportować wybrane sceny jako szkice, co ułatwia tworzenie nowych filmów.

Korzyści z samodzielnego hostowania

Samodzielne hostowanie Edit Mind zapewnia kilka korzyści, w tym prywatność, oszczędność kosztów, szybkość, dostosowanie i możliwość działania offline. Dzięki przechowywaniu filmów na moim własnym sprzęcie, zapewniam, że pozostaną one prywatne i bezpieczne. Oszczędność kosztów jest znacząca, ponieważ nie muszę już płacić za chmurową analizę wideo. Narzędzie jest również znacznie szybsze, ponieważ nie ma żadnych ograniczeń związanych z transferem danych. Dodatkowo, architektura pluginów pozwala mi dostosować narzędzie do moich potrzeb, a możliwość działania offline oznacza, że mogę używać go nawet bez połączenia z internetem.

Obecne ograniczenia i przyszły rozwój

Pomimo że Edit Mind jest potężnym narzędziem, nie jest ono pozbawione ograniczeń. Aplikacja wymaga przyzwoitego sprzętu, a rozpoznawanie twarzy wymaga początkowego szkolenia. Proces indeksowania po raz pierwszy może być powolny, ale jest to proces jednorazowy. Parsowanie zapytań wykorzystuje domyślnie API Gemini, ale można je łatwo zastąpić Ollamą. Mimo tych ograniczeń, jestem podekscytowany potencjałem Edit Mind i planuję kontynuować rozwój i udoskonalanie narzędzia.

Mam nadzieję, że moja historia i rozwój Edit Mind mogą zainspirować innych do eksplorowania samodzielnych rozwiązań do analizy wideo. Niezależnie od tego, czy jesteś rodzicem z filmami rodzinymi, twórcą treści, czy dokumentalistą, Edit Mind może pomóc Ci znaleźć konkretny moment w Twoich filmach szybko i łatwo. Narzędzie jest dostępne na GitHub, i witam opinie i wkład społeczności.

Leave a Reply

Your email address will not be published. Required fields are marked *

WordPress Appliance - Powered by TurnKey Linux