Pi Lab https://pilab.dev Raspberry Pi Cluster Tue, 17 Mar 2026 10:47:25 -0500 Introducing Posteria https://pilab.dev/introducing-posteria https://pilab.dev/bl-content/uploads/pages/782e531ab637451cf79a40ca150604c5/posteria.png <p>Imagine a world where your Plex media library looks as professional as it feels. Posteria is the solution Plex enthusiasts have been waiting for – a sleek, intuitive platform that transforms how you organize and showcase your movie, TV show, and collection artwork.</p> <h2>Why Posteria Matters</h2> <p>For anyone with a growing Plex media collection, poster management can quickly become a frustrating mess. Mismatched artwork, cluttered folders, and inconsistent designs can turn your digital library into a visual nightmare. Posteria changes all that.</p> <h3>Features That Make a Difference</h3> <p><span class="emoji">πŸ–₯️</span> <strong>Clean, Modern Interface</strong><br /> Say goodbye to cluttered poster libraries. Posteria offers an intuitive design that makes managing your media artwork as enjoyable as watching your favorite shows.</p> <p><span class="emoji">πŸ“</span> <strong>Smart Organization</strong><br /> Keep everything perfectly sorted with dedicated categories for:</p> <ul> <li>Movies</li> <li>TV Shows</li> <li>TV Seasons</li> <li>Collections</li> </ul> <p><span class="emoji">πŸ“₯</span> <strong>Import from Plex</strong><br /> Easily import existing posters directly from your Plex Media Server with just a few clicks.</p> <p><span class="emoji">πŸ“€</span> <strong>Export to Plex</strong><br /> Send your custom posters directly back to your Plex Media Server, ensuring visual consistency across your entire media library.</p> <p><span class="emoji">🎬</span> <strong>TMDB Integration</strong><br /> The Movie Database (TMDB) is now fully integrated with Posteria, allowing for automatic poster fetching directly TMDB.</p> <p><span class="emoji">🧹</span> <strong>Orphan Detection</strong><br /> Identify and manage orphaned posters that aren't linked to media, keeping your collection clean and relevant.</p> <p><span class="emoji">πŸ“±</span> <strong>Installable PWA</strong><br /> Fully mobile-responsive and installable as a Progressive Web App (PWA), Posteria goes wherever you go.</p> <h2>Screenshot</h2> <p><img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/Posteria/main/images/screenshot.png" alt="Posteria Screenshot" /></p> <h2>More Than Just an App</h2> <p>Posteria isn't just a tool – it's a love letter to Plex users who care about the details. It's designed for people who see their media library as more than just files – it's a reflection of their taste, memories, and passion for visual consistency.</p> <h3>Who Is Posteria For?</h3> <ul> <li>Plex server owners who take pride in their media presentation</li> <li>Movie collectors seeking visual consistency</li> <li>TV show enthusiasts wanting organized season posters</li> <li>Media enthusiasts who appreciate attention to detail</li> </ul> <h2>Get Started</h2> <p>Ready to transform your Plex media library? Visit <a href="proxy.php?url=https://posteria.app">posteria.app</a> for full installation instructions, configuration options, and how to get started.</p> <h2>Finding the Perfect Posters</h2> <p>Posteria works wonderfully with popular poster sources like:</p> <ul> <li>The Poster Database (TPDB)</li> <li><strong>The Movie Database (TMDB)</strong> - Now fully integrated for automatic poster fetching</li> <li>The TV Database (TVDB)</li> <li>Mediux</li> </ul> <p>The application even supports using Mediux YAML files in the URL uploader when changing posters, making it a convenient choice for managing your collection.</p> <h2>Security Made Simple</h2> <p>Posteria includes basic authentication to protect your poster collection. For accessing Posteria outside your network, it's recommended to use a service like <a href="proxy.php?url=https://tailscale.com">Tailscale</a> or another VPN solution rather than exposing it directly to the internet.</p> <h2>Support the Project</h2> <p><span class="emoji">❀️</span> Found Posteria useful? Consider supporting the developer and helping them continue improving this amazing tool!</p> <p><a href="proxy.php?url=https://www.buymeacoffee.com/jeremehancock"><img src="proxy.php?url=https://img.buymeacoffee.com/button-api/?text=Hard drive fund&emoji=πŸ’»&slug=jeremehancock&button_colour=f5a623&font_colour=000000&font_family=Bree&outline_colour=000000&coffee_colour=FFDD00" /></a></p> <h2>Technical Highlights</h2> <ul> <li><strong>Docker-based</strong>: Easy deployment on any system</li> <li><strong>Flexible Configuration</strong>: Customize to fit your needs</li> <li><strong>TMDB Integration</strong>: Seamless access to thousands of posters</li> <li><strong>Simple Authentication</strong>: Protect your poster collection</li> <li><strong>Open Source</strong>: MIT Licensed</li> <li><strong>Built with <span class="emoji">❀️</span> for the Plex community</strong></li> </ul> <p>Posteria isn't just an app – it's your Plex library's new best friend. Organize, beautify, and enjoy your collection like never before!</p> Wed, 26 Feb 2025 09:35:51 -0600 782e531ab637451cf79a40ca150604c5 Introducing: Libretto https://pilab.dev/libretto-plex-library-metadata-exporter https://pilab.dev/bl-content/uploads/pages/2dcc539255956b2c8ec293f1ea620010/libretto.png <p>Hello, fellow Plex enthusiasts! If you're anything like me, you've poured countless hours into organizing your Plex media libraries just the way you like them. Carefully filling in movie details, series summaries, episode titles - it's a true labor of love. <span class="emoji">😊</span></p> <p>But have you considered what would happen if you lost all that painstakingly curated metadata? Server crashes, database corruptions - these things happen, and they could wipe out all your hard work in a heartbeat! <span class="emoji">😱</span></p> <p>Fear not, for Libretto is here to save the day! <span class="emoji">πŸ¦Έβ€β™‚οΈ</span></p> <h2>Libretto: Your Metadata Safety Net <span class="emoji">🌟</span></h2> <p>Libretto is a clever Python script that interfaces with your Plex server and exports detailed metadata about your Movie, TV Show, and Music libraries into neatly formatted CSV files.</p> <p>So, what sort of metadata does Libretto back up? Here's a peek:</p> <h3>Movies <span class="emoji">🎬</span></h3> <ul> <li>Title, Year, Duration, Rating </li> <li>Studio, Content Rating, Tagline, Summary</li> <li>Media Info (Resolution, Audio/Video Codecs, etc.)</li> <li>File Details (Size, Container, etc.)</li> <li>Genre, Country, Director, Writer, Actor Info</li> <li>...and more!</li> </ul> <h3>TV Shows <span class="emoji">πŸ“Ί</span></h3> <ul> <li>Series Title, Episode Count, Season Count</li> <li>Studio, Content Rating, Summary, Rating </li> <li>Original Air Date, Duration</li> <li>Genre, Country, Actor Info</li> <li>...and more!</li> </ul> <h3>Music <span class="emoji">🎡</span></h3> <ul> <li>Artist, Album, Year</li> <li>Genre, Studio</li> <li>...and more!</li> </ul> <p>Libretto fetches all this valuable metadata and saves it into tidy CSV files, giving you a full backup of your library details at the time of export.</p> <h2>The Importance of Metadata Backups <span class="emoji">πŸ’‘</span></h2> <p>You might be thinking, &quot;I already back up my media files themselves. Why do I need a separate metadata backup?&quot;</p> <p>While your media files do contain the actual content, it's the metadata that truly makes your Plex library unique. Details like summaries, ratings, original air dates - these are what could be lost if something goes wrong with your Plex server.</p> <p>With Libretto, you'll have a metadata backup at the ready. If you ever need to rebuild your Plex library from the ground up, you can use these CSV files to restore key details. Think of it as an insurance policy for your Plex library metadata!</p> <h2>Using Libretto is a Breeze <span class="emoji">πŸƒ</span></h2> <p>Getting started with Libretto couldn't be easier. Just grab the Python script from the <a href="proxy.php?url=https://github.com/jeremehancock/Libretto">GitHub repo</a>, set it up with your Plex server info, and let it do its thing! You can back up individual libraries or your entire server in one go.</p> <p>You can even set up a cron job or scheduled task to run Libretto automatically, ensuring your metadata backups are always up to date without you having to lift a finger. Set it and forget it, and enjoy the peace of mind that comes with knowing your Plex library metadata is safe and sound.</p> <h2>Get Libretto Today! <span class="emoji">πŸ’Ύ</span></h2> <p>Ready to give your Plex metadata the safety net it deserves? Snag Libretto from <a href="proxy.php?url=https://github.com/jeremehancock/Libretto">GitHub</a> now - it's 100% free and open-source!</p> <p>With Libretto in your corner, you'll never need to stress over losing your lovingly curated Plex library details again. <span class="emoji">πŸŽ‰</span></p> <p>Happy backing up, Plex friends!<span class="emoji"> πŸ€—πŸ“šπŸŽ¬πŸŽ΅</span></p> Thu, 06 Feb 2025 09:47:53 -0600 2dcc539255956b2c8ec293f1ea620010 AI Game Collection https://pilab.dev/ai-game-collection https://pilab.dev/bl-content/uploads/pages/b76e72cdd1ec17ffdf9eab71f7338e98/ai-game-collection.webp <h2><span class="emoji">πŸ€–</span> Unleashing the Power of AI in Gaming: The AI Game Collection!</h2> <p>Get ready for a wild ride into the world of AI-powered gaming! I've been on a mission to see if I could create entire JavaScript games using almost nothing but the magic of artificial intelligence. </p> <h3><span class="emoji">🌟</span> Introducing the AI Game Collection</h3> <p>The <strong><a href="proxy.php?url=https://aigamecollection.com/">AI Game Collection</a></strong> is my latest passion project, and I'm thrilled to share it with you all. It's an experiment that brings together the realms of gaming and machine learning in the most unexpected ways! </p> <p>Picture this: classic games reimagined with a futuristic AI twist. I wanted to explore the untapped potential of combining gaming and AI, and let me tell you, it's been an absolute blast!</p> <h3><span class="emoji">🎨</span> Self-Contained HTML Files</h3> <p>The best part? Each game is a self-contained HTML file, making it a breeze for anyone to jump in and start playing around with the code. Whether you're a seasoned programmer or just taking your first steps into the coding world, you'll have a ton of fun exploring these AI-infused creations. </p> <h3><span class="emoji">πŸš€</span> Join the Adventure on GitHub</h3> <p>I've made all the code and resources available on <a href="proxy.php?url=https://github.com/jeremehancock/AI-Game-Collection">GitHub</a>, so you can join the adventure and add your own unique spin to the games. Tweak the AI, come up with new features, or even build your own AI-powered gaming masterpieces from scratch. The sky's the limit! </p> <h3><span class="emoji">🀯</span> Igniting the Conversation Around AI in Gaming</h3> <p>But here's the thing: this project isn't just about making cool games. It's about igniting a conversation around the awe-inspiring potential of AI in the gaming industry. Imagine games that can adapt to your playstyle, learn from your decisions, and generate brand new content on the fly! </p> <h3><span class="emoji">🎒</span> Embark on the Mind-Bending Journey</h3> <p>So, what are you waiting for? Head over to <strong><a href="proxy.php?url=https://aigamecollection.com/">AI Game Collection</a></strong>, pick your favorite game, and dive into a world where artificial intelligence meets pure gaming fun! Get ready to have your gaming skills put to the test and be amazed by the power of AI! </p> <p>The future is now, and it's powered by AI! </p> <h3><span class="emoji">πŸ“Έ</span> Screenshots</h3> <div align="center"> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/home.png" width="300" alt="Game Menu"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/nerdle-game.png" width="300" alt="Nerdle"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/pipes.png" width="300" alt="Pipes Puzzle"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/memory.png" width="300" alt="Memory Game"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/minesweeper.png" width="300" alt="Minesweeper"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/snake-game.png" width="300" alt="Snake Game"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/soccer-juggle.png" width="300" alt="Soccer Juggle Game"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/water-ring-toss-game.png" width="300" alt="Water Ring Toss"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/waveform-game.png" width="300" alt="Waveform"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/bubble-pop-game.png" width="300" alt="Bubble Pop"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/breakout.png" width="300" alt="Breakout"/> <img src="proxy.php?url=https://raw.githubusercontent.com/jeremehancock/AI-Game-Collection/refs/heads/main/images/screenshots/space-shooter-game.png" width="300" alt="Space Shooter"/> </div> <h3><span class="emoji">πŸ“</span> A Note About This Post</h3> <p>This blog post including the post thumbnail was crafted with the help of artificial intelligence. That's right, even the words you're reading right now were generated by an AI! It's a testament to the incredible potential of AI technology and how it can be used to create engaging, informative, and entertaining content. So, not only are the games in the AI Game Collection powered by AI, but the very post that brought you here is too! </p> Tue, 10 Dec 2024 10:22:22 -0600 b76e72cdd1ec17ffdf9eab71f7338e98 Perfect Travel TV Setup https://pilab.dev/the-perfect-travel-tv-setup https://pilab.dev/bl-content/uploads/pages/2e2762b3524a642f87e1dda68eabfc0d/onn-4k-2.png <p>One of the best benefits of running your own Plex server is being able to watch your movies and shows wherever you are. Many folks will just log in to Plex on the hotel TV (assuming it has the Plex app) while traveling. I don't like doing this. For one thing smart TVs are generally underpowered and that can cause issues streaming. The other issue is I don't like to log in to a TV that isn't mine.</p> <p>I have seen a ton of posts on Reddit over the years with different solutions for this. Many of them seem very complicated. I like to keep things simple.</p> <h2>Here is my current travel setup</h2> <ul> <li><a href="proxy.php?url=https://www.amazon.com/Android-Streaming-Device-Remote-Control/dp/B0BRBLG3W6/ref=sr_1_1">ONN 4K Android TV Box</a> <ul> <li><strong><a href="proxy.php?url=https://play.google.com/store/apps/details?id=com.plexapp.android">Plex</a></strong></li> <li><strong><a href="proxy.php?url=https://play.google.com/store/apps/details?id=org.xbmc.kodi">Kodi</a></strong> - In case my location doesn't have decent internet connection.</li> <li><strong><a href="proxy.php?url=https://play.google.com/store/apps/details?id=org.jellyfin.mobile">Jellyfin</a></strong> - In case Plex has any issues.</li> <li><strong><a href="proxy.php?url=https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.unplugged">YouTube TV</a></strong></li> <li><strong><a href="proxy.php?url=https://play.google.com/store/apps/details?id=com.tailscale.ipn">Tailscale</a></strong> - I have this setup to auto connect and use one of my home servers (could be the Plex server) as an exit node. I have Plex, Kodi, and JellyFin added to the exceptions list so that they don't route through Tailscale. This is only really used for YouTube TV.</li> </ul></li> <li><a href="proxy.php?url=https://www.amazon.com/WD-1TB-Elements-Compatible-WDBAYN0010BBK-WESN/dp/B097TTZD48">WD 1TB External SSD</a> (Offline Media)</li> <li><a href="proxy.php?url=https://www.amazon.com/dp/B083KJ1B5H">OTG Cable</a> - For connecting the SSD</li> </ul> <p>In this setup I have Plex (Jellyfin as backup) for when I have a good internet connection and can stream from my server. I have Kodi setup to point to the local SSD that has been pre-loaded with a selection of movies and shows in case the internet is not good enough for connecting to my Plex server. I have Tailscale setup to use one of my home servers as an exit node so that I can watch YouTube TV as if I were at home.</p> <p><em>Note: I chose the ONN 4K 2023 box because it is cheap and it supports connecting an SSD via OTG cable. I had issues with other cheap boxes not recognizing the connection.</em></p> <div class="centered"> <img src="proxy.php?url=/bl-content/uploads/pages/2e2762b3524a642f87e1dda68eabfc0d/travel-tv-box.png" class="image-border" /><br><br> </div> Thu, 26 Sep 2024 12:07:07 -0500 2e2762b3524a642f87e1dda68eabfc0d I won a server! https://pilab.dev/i-won-a-server https://pilab.dev/bl-content/uploads/pages/89e9143555d071d55ac2daaebd4f2a00/minisforum-ms-a1-thumb2.png <p>I thought my recent good luck with my <a href="proxy.php?url=/plex-server-upgrade">Plex server upgrade</a> was great, then I won a <a href="proxy.php?url=https://store.minisforum.com/products/minisforum-ms-a1?variant=45707673338101">Minisforum MS-A1</a>!</p> <p>I was listening to some YouTube videos while working the other day. I came across a channel <a href="proxy.php?url=https://www.youtube.com/@VirtualizationHowto">@VirtualizationHowto</a> that I hadn't seen before. The title &quot;Perfect Home Lab 2024 and Minisforum Giveaway!&quot; caught my eye. So I decided to watch. The contest rules were simple so I decided to put my name in the hat. I typed &quot;Fingers crossed :)&quot; into the comments and went on with my day.</p> <p>I had completely forgotten about the contest until a week or so later when I saw a notification with a reply to my comment. It took me a few minutes to figure out what it even was. Then once I remembered I thought for sure I was being scammed. </p> <p>So I reached out as requested and I was pleasantly surprised to learn that I had indeed won!</p> <p>Brandon from <a href="proxy.php?url=https://www.youtube.com/@VirtualizationHowto">@VirtualizationHowto</a> was great and got the server shipped super quick. It arrived in great condition and has been a marvelous addition to my setup.</p> <p>I have also really enjoyed the channel. I am sure I will be watching many more videos to get more tips on using my new server!</p> <div class="centered"> <img src="proxy.php?url=/bl-content/uploads/pages/89e9143555d071d55ac2daaebd4f2a00/minisforum-ms-a1.png" class="image-border" /><br><br> </div> <h4>So what am I using it for?</h4> <p>I have set it up as a <a href="proxy.php?url=https://proxmox.com/en/">Proxmox</a> server. I have the OS installed on a 512GB NVMe SSD and have 2 1TB NVMe SSDs setup as a mirror for VM storage. I have migrated a setup that was previously on a Dell OptiPlex to an Ubuntu VM running on the new server. It is working great and I have a ton of overhead to add more VMs and services. Full specs are <a href="proxy.php?url=/specs#proxmox">here</a>.</p> <h4>Here is the video announcing the winner.</h4> <div class="centered"> <iframe class="iframe-border" width="100%" height="500" src="proxy.php?url=https://www.youtube-nocookie.com/embed/szL4OrvSbG8?si=Qlbq4NTARhyiizwN" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> </div> Thu, 26 Sep 2024 12:06:45 -0500 89e9143555d071d55ac2daaebd4f2a00