Uncategorized

I just wanted a large media library

Creating My Dream Media Library: A Journey of Self-Discovery and Coding

A Personal Quest for the Perfect Media Experience

I’ve always been a media enthusiast, and over the years, I’ve tried various solutions to manage my large media library. From using Jellyfin to experimenting with Stremio, I’ve been on a quest to find the perfect platform that combines freedom with a vast library of content. In this post, I’ll share my journey of creating my own media library from scratch, the challenges I faced, and what I’ve learned along the way.

It all started when I realized that my current setup, using Jellyfin, wasn’t optimal for my massive library of over 200,000 items. I needed a solution that could handle such a large collection without breaking a sweat. After exploring various options, I decided to take matters into my own hands and build my own media library from the ground up.

The Backend: Node.js and TypeScript

I chose Node.js as the foundation for my backend, using TypeScript to ensure scalability and maintainability. With no prior experience in coding, I had to learn as I went, relying on online resources and AI-powered tools to help me navigate the complexities of software development. One of the biggest challenges I faced was implementing a proxy between the media sources and TMDB for metadata, but I eventually got it working.

Using Swagger/OpenAPI for API documentation was a game-changer, as it allowed me to create a robust and well-documented API that would serve as the backbone of my media library. I also implemented a full proxy between the sources and TMDB, which enabled me to fetch metadata and other essential information for my media collection.

The Frontend: Kotlin Composer and Multiple Platforms

For the frontend, I opted for Kotlin Composer, which allowed me to create a unified codebase that could run on multiple platforms, including Android, Google TV, and mobile devices. Although I haven’t tested the iOS portion yet, I’m confident that it will work seamlessly once I get around to it. The website is also on my to-do list, and I’m considering using Sveltekit to make it happen.

One of the most exciting aspects of my project is the ability to stream media content without downloading or using torrents. I’ve implemented a system that scrapes, sources, and aggregates media from various streaming APIs, making it possible to access a vast library of content without breaking the bank or compromising on quality.

The Fun Part: Media Scraping and Streaming

The media scraping and streaming aspect of my project has been a wild ride. I’ve had to navigate the complexities of Cloudflare Turnstile, which protects the streaming APIs I’m using. While I’ve managed to bypass some of the challenges, I’ve also encountered limitations, such as being locked out for an hour when I failed to pass some of the challenges. If anyone has experience with Cloudflare Turnstile, I’d love to hear from you and learn from your expertise.

Despite the hurdles, I’m proud of what I’ve accomplished so far. My media library is self-hostable, allowing anyone to use it in their own way. I’m committed to making it available to the community, and I’m excited to see how it will evolve over time. With plans to integrate live TV and other features, the possibilities are endless.

Conclusion: A Labor of Love

Creating my dream media library has been a labor of love, filled with ups and downs, twists and turns. While I’ve faced numerous challenges, I’ve also learned a great deal about software development, perseverance, and the importance of community. If you’ve made it this far, I’d love to hear your thoughts, feedback, and suggestions. Let’s work together to create something amazing.

Tworząc Moją Marzeń Bibliotekę Multimedialną: Podróż Odkrywania Siebie i Kodowania

Osobista Misja Poszukiwania Idealnego Doświadczenia Multimedialnego

Zawsze byłem entuzjastą multimediów, a na przestrzeni lat próbowałem różnych rozwiązań, aby zarządzać moją ogromną biblioteką multimedialną. Od używania Jellyfin do eksperymentowania ze Stremio, byłem na poszukiwaniu idealnej platformy, która łączyłaby swobodny dostęp do treści z ogromną biblioteką. W tym poście podzielę się moją podróżą tworzenia własnej biblioteki multimedialnej od podstaw, wyzwaniami, których się podjąłem, i tym, czego się nauczyłem po drodze.

Wszystko zaczęło się, kiedy zdałem sobie sprawę, że mój obecny układ, korzystający z Jellyfin, nie był optymalny dla mojej ogromnej biblioteki liczącej ponad 200 000 pozycji. Potrzebowałem rozwiązania, które mogłoby poradzić sobie z tak ogromną kolekcją bez żadnych problemów. Po przeszukaniu różnych opcji postanowiłem wziąć sprawy w swoje ręce i zbudować własną bibliotekę multimedialną od podstaw.

Backend: Node.js i TypeScript

Wybrałem Node.js jako podstawę dla mojego backendu, używając TypeScript, aby zapewnić skalowalność i utrzymanie. Bez wcześniejszego doświadczenia w kodowaniu, musiałem uczyć się w miarę postępów, korzystając z internetowych zasobów i narzędzi zasilanych przez AI, aby pomóc mi nawigować w złożonościach rozwoju oprogramowania. Jednym z największych wyzwań, których się podjąłem, było wdrożenie proxy między źródłami multimedialnymi a TMDB do metadanych, ale ostatecznie udało mi się to uzyskać.

Używanie Swagger/OpenAPI do dokumentacji API było przełomowe, ponieważ pozwoliło mi stworzyć solidne i dobrze udokumentowane API, które będzie służyć jako podstawa mojej biblioteki multimedialnej. Wdrożyłem również pełne proxy między źródłami a TMDB, co umożliwiło mi pobieranie metadanych i innych niezbędnych informacji dla mojej kolekcji multimedialnej.

Frontend: Kotlin Composer i Wiele Platform

Dla frontendu wybrałem Kotlin Composer, który pozwolił mi stworzyć ujednolicone repozytorium kodu, które może działać na wielu platformach, w tym Android, Google TV i urządzeniach mobilnych. Chociaż jeszcze nie przetestowałem części iOS, jestem pewien, że będzie działać bezproblemowo, kiedy do tego dojdę. Strona internetowa jest również na mojej liście zadań, i rozważam używanie Sveltekit, aby to zrobić.

Jednym z najbardziej ekscytujących aspektów mojego projektu jest możliwość strumieniowania treści multimedialnych bez pobierania lub używania torrentów. Wdrożyłem system, który skrapla, źródłuje i agreguje treści multimedialne z różnych API strumieniowych, umożliwiając dostęp do ogromnej biblioteki treści bez wydawania fortuny lub kompromitowania jakości.

Część Rozrywkowa: Skraplanie i Strumieniowanie Multimedialne

Część skraplania i strumieniowania multimedialnego w moim projekcie była dziką jazdą. Musiałem nawigować w złożonościach Cloudflare Turnstile, które chroni API strumieniowe, których używam. Chociaż udało mi się ominąć niektóre z wyzwań, spotkałem również ograniczenia, takie jak zablokowanie na godzinę, kiedy nie udało mi się przejść niektórych wyzwań. Jeśli ktoś ma doświadczenie z Cloudflare Turnstile, bardzo chciałbym usłyszeć od ciebie i nauczyć się z twojego doświadczenia.

Pomimo przeszkód, jestem dumny z tego, co osiągnąłem do tej pory. Moja biblioteka multimedialna jest samodzielnie hostowalna, umożliwiając każdemu jej używanie na własny sposób. Zobowiązuję się do udostępnienia jej społeczności i jestem podekscytowany, aby zobaczyć, jak będzie ewoluowała w czasie. Z planami integracji telewizji na żywo i innych funkcji, możliwości są nieograniczone.

Podsumowanie: Praca Miłości

Tworzenie mojej marzeń biblioteki multimedialnej było pracą miłości, wypełnioną wzlotami i upadkami, skrętami i zwrotami. Chociaż spotkałem wiele wyzwań, nauczyłem się również wiele o rozwoju oprogramowania, wytrwałości i ważności społeczności. Jeśli przeczytałeś do tego momentu, bardzo chciałbym usłyszeć twoje myśli, opinie i sugestie. Działajmy razem, aby stworzyć coś niesamowitego.

Leave a Reply

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

WordPress Appliance - Powered by TurnKey Linux