My Quest for the Ultimate Media Library
I’ll be the first to admit it: I’m a media junkie. I love having access to a vast library of movies, TV shows, and other content at my fingertips. But as much as I enjoy streaming services like Netflix and Hulu, I’ve always wanted more control over my media collection. That’s why I set out to create my own media library, one that would give me the freedom to watch whatever I want, whenever I want.
The Journey Begins
I started by exploring existing solutions like Jellyfin, which allowed me to self-host my own media library. But as my collection grew, I realized that Jellyfin wasn’t optimized for large libraries. I needed something more robust, something that could handle tens of thousands of items without breaking a sweat. That’s when I stumbled upon the idea of building my own media library from scratch.
The Challenges I Faced
As a non-developer, I knew I had my work cut out for me. I had to learn new programming languages, like Node.js and TypeScript, and figure out how to create a user-friendly interface. But I was determined to make it work. I spent countless hours researching, experimenting, and troubleshooting, all while balancing my day job and other responsibilities.
One of the biggest challenges I faced was finding a reliable source of media content. I didn’t want to resort to torrents or downloads, so I started exploring alternative options. That’s when I discovered streaming APIs, which allowed me to access a vast library of content without having to host it myself. But there was a catch: the links were protected by Cloudflare Turnstile, which made it difficult to access the content without getting locked out.
The Solution I Found
After months of trial and error, I finally found a solution that worked. I created a backend using Node.js and TypeScript, which acted as a proxy between the media sources and TMDB, a popular metadata provider. This allowed me to fetch metadata and content from various sources, without having to host it myself.
For the frontend, I used Kotlin Composer, which enabled me to create a user-friendly interface that worked seamlessly across multiple platforms, including Android, Google TV, and mobile devices. I also created a website, which allowed users to access their media library from anywhere.
Features and Functionality
My media library, which I’ve dubbed “the contraption,” has a range of features that make it easy to use and enjoy. Here are a few highlights:
- Full search functionality, allowing users to find their favorite movies and TV shows
- Genres, top lists, and popular suggestions, making it easy to discover new content
- Details pages, which provide additional information about each title, including descriptions, seasons, and episodes
- Support for Live TV, which is currently in development
What’s Next
While I’m proud of what I’ve accomplished so far, I know that there’s still more work to be done. My goal is to make the contraption self-hostable, so that anyone can use it to create their own media library. I’m also working on adding more features, like user accounts and login functionality, to make it even more user-friendly.
If you’re interested in learning more about the contraption, or if you have any suggestions or feedback, I’d love to hear from you. Who knows, maybe one day we’ll have a community of media enthusiasts, all working together to create the ultimate media library.
Moja Quest for Ostateczną Bibliotekę Mediów
Będę pierwszym, który to przyzna: jestem uzależniony od mediów. Lubię mieć dostęp do ogromnej biblioteki filmów, seriali i innych treści na wyciągnięcie ręki. Ale mimo że lubię usługi streamingowe jak Netflix i Hulu, zawsze chciałem mieć więcej kontroli nad moją kolekcją mediów. Dlatego postanowiłem stworzyć własną bibliotekę mediów, która da mi wolność oglądania tego, co chcę, kiedy chcę.
Początek Podróży
Zacząłem od eksplorowania istniejących rozwiązań jak Jellyfin, które pozwalało mi na samodzielne hostowanie mojej własnej biblioteki mediów. Ale gdy moja kolekcja rosła, zdałem sobie sprawę, że Jellyfin nie był zoptymalizowany dla dużych bibliotek. Potrzebowałem czegoś bardziej wydajnego, czegoś, co mogłoby obsłużyć dziesiątki tysięcy pozycji bez zacięcia. Wtedy wpadłem na pomysł stworzenia własnej biblioteki mediów od podstaw.
Wyzwania, z którymi się zmierzyłem
Jako nie-programista, wiedziałem, że mam przed sobą ciężką pracę. Musiałem nauczyć się nowych języków programowania, jak Node.js i TypeScript, i dowiedzieć się, jak stworzyć przyjazny interfejs. Ale byłem zdeterminowany, aby to udźwignąć. Spędziłem niezliczone godziny na badaniach, eksperymentach i rozwiązywaniu problemów, wszystko to równolegle z pracą i innymi odpowiedzialnościami.
Jednym z największych wyzwań, z którymi się zmierzyłem, było znalezienie niezawodnego źródła treści mediowych. Nie chciałem uciekać się do torrentów czy pobierania, więc zacząłem eksplorować alternatywne opcje. Wtedy odkryłem API streamingowe, które pozwalały mi na dostęp do ogromnej biblioteki treści bez konieczności ich hostowania. Ale było jedno “ale”: linki były chronione przez Cloudflare Turnstile, co utrudniało dostęp do treści bez zablokowania.
Rozwiązanie, które znalazłem
Po miesiącach prób i błędów wreszcie znalazłem rozwiązanie, które działało. Stworzyłem backend przy użyciu Node.js i TypeScript, który działał jako proxy między źródłami mediów a TMDB, popularnym dostawcą metadanych. To pozwoliło mi na pobieranie metadanych i treści z różnych źródeł, bez konieczności ich hostowania.
Dla frontendu użyłem Kotlin Composer, który umożliwił mi stworzenie przyjaznego interfejsu, który działał bezproblemowo na różnych platformach, w tym Android, Google TV i urządzeniach mobilnych. Stworzyłem także stronę internetową, która pozwalała użytkownikom na dostęp do ich biblioteki mediów z dowolnego miejsca.
Funkcje i Funkcjonalność
Moja biblioteka mediów, którą nazwałem “konstrukt”, ma szereg funkcji, które sprawiają, że jest łatwa w użyciu i przyjemna. Oto kilka wyjątków:
- Pełna funkcjonalność wyszukiwania, pozwalająca użytkownikom na znalezienie ulubionych filmów i seriali
- Gatunki, listy najlepszych i sugestie popularne, ułatwiające odkrywanie nowych treści
- Strony szczegółów, które zapewniają dodatkowe informacje o każdym tytule, w tym opisy, sezony i odcinki
- Wsparcie dla telewizji na żywo, które jest obecnie w fazie rozwoju
Co dalej
Mimo że jestem dumny z tego, co osiągnąłem dotychczas, wiem, że jest jeszcze wiele pracy do wykonania. Moim celem jest uczynienie konstruktu samodzielnym, aby każdy mógł go użyć do stworzenia własnej biblioteki mediów. Pracuję także nad dodaniem nowych funkcji, takich jak konta użytkowników i funkcjonalność logowania, aby uczynić go jeszcze bardziej przyjaznym.
Jeśli jesteś zainteresowany dowiedzeniem się więcej o konstrucie lub masz sugestie i opinie, chętnie je usłyszę. Kto wie, może kiedyś będziemy mieli społeczność miłośników mediów, pracujących razem nad stworzeniem ostatecznej biblioteki mediów.