tcx4c70 2 Posted January 11 Posted January 11 Hi TheGru! Thank you so much for this wonderful project — it’s really impressive work. I’d love to contribute by fixing a few small bugs and possibly improving performance. Would you be open to contributions like that? Also, I didn’t see a LICENSE file in the repository, just a mention of the MIT license in the README. Could you please confirm which license the project is released under? Is it MIT?
Killface69 96 Posted January 11 Posted January 11 2 hours ago, TheGru said: I will be working on a backup/restore of the database to provide for easy migrations and not having to re-sync and rerun embeddings on large libraries in a future version. I still had issues with the new version not connecting to Emby on my QNAP. I peaked into the docker file of Pihole and added some of the network settings to your docker file, making it work. Here are my changes for your reference, server ip is set to ...134: # [app] add networks: qnet-network: ipv4_address: 192.168.0.134 # [db] add networks: qnet-network: ipv4_address: 192.168.0.135 # bottom add networks: qnet-network: driver_opts: iface: eth0 driver: qnet ipam: driver: qnet options: iface: eth0 config: - subnet: 192.168.0.0/24 gateway: 192.168.0.1
TheGru 143 Posted January 11 Author Posted January 11 5 minutes ago, tcx4c70 said: Hi TheGru! Thank you so much for this wonderful project — it’s really impressive work. I’d love to contribute by fixing a few small bugs and possibly improving performance. Would you be open to contributions like that? Also, I didn’t see a LICENSE file in the repository, just a mention of the MIT license in the README. Could you please confirm which license the project is released under? Is it MIT? I hadn't really thought about it. This has been 3 days in the making and I am just jamming. I've added a MIT license to the project. I have probably made 10,000 changes since you last pulled code, but feel free to contribute to the project.
TheGru 143 Posted January 11 Author Posted January 11 1 minute ago, Killface69 said: I still had issues with the new version not connecting to Emby on my QNAP. I peaked into the docker file of Pihole and added some of the network settings to your docker file, making it work. Here are my changes for your reference, server ip is set to ...134: # [app] add networks: qnet-network: ipv4_address: 192.168.0.134 # [db] add networks: qnet-network: ipv4_address: 192.168.0.135 # bottom add networks: qnet-network: driver_opts: iface: eth0 driver: qnet ipam: driver: qnet options: iface: eth0 config: - subnet: 192.168.0.0/24 gateway: 192.168.0.1 I will add a specific QNAP docker compose file, for others to reference. Thank you for sharing!
TheGru 143 Posted January 11 Author Posted January 11 Aperture v0.2.5 Release Notes Hey everyone! Big update with lots of improvements based on your feedback. Here's what's new: Platform-Specific Docker Compose Files We now have dedicated docker-compose files for different NAS platforms! No more guessing about paths and network settings. Download for your platform: Unraid - /mnt/user/ paths, ready to go QNAP - Uses qnet driver with static IPs for proper network connectivity Synology - /volume1/ paths, optional macvlan network config Generic/Linux - For other environments Database Backup & Restore New backup system to protect your configuration: Automatic daily backups at 1 AM (configurable) Restore from backup during initial setup or from Admin panel Retention policy - configure how many backups to keep Backups stored in /backups volume mount Updated Default Schedules Optimized the default job schedules for better performance: Job Schedule Database Backup Daily at 1 AM Library Scan Daily at 2 AM Embeddings Daily at 3 AM AI Recommendations Weekly on Sunday at 4 AM Top Picks Daily at 5 AM Watch History Every 2 hours Metadata Enrichment Every 6 hours All schedules are now configurable via Admin → Jobs. The setup wizard's completion screen now shows these defaults. Setup Wizard Improvements Re-run individual jobs - Failed or want to re-run a specific job? Now you can! Restored job history - If you go back to the sync step, your previous job results are preserved Top Picks integration - Sync Top Picks job now appears in the wizard (if enabled) Better progress tracking - Shows actual recommendation counts, not episode counts for series Library creation summary - See exactly which libraries were created, including Top Picks Bug Fixes Fixed movie recommendations showing wrong count - Was showing 8 instead of 12 due to rank calculation bug Fixed series showing episode count instead of series count - Now correctly shows "12 series" not "170 episodes" Fixed library images not applying during setup - Bundled default images now work in Docker Fixed Top Picks library creation errors - Corrected path handling for Emby API Fixed symlinks with Sharp overlays - Ranked posters now apply correctly License Added official MIT LICENSE file to the repository. Community Contributors Big thanks to everyone who helped make this release possible: Killface69 - Docker configuration for QNAP DaMoekster - Tons of testing and bug reporting Your feedback and contributions make Aperture better for everyone! How to Update # Pull the latest image docker-compose -f docker-compose.[your-platform].yml pull # Restart docker-compose -f docker-compose.[your-platform].yml up -d Full Changelog View all commits on GitHub Questions or issues? Drop them below!
TheGru 143 Posted January 11 Author Posted January 11 Massive performance improvements writing to the DB, syncing movies and series is about 100X faster. Release coming soon!
TheGru 143 Posted January 11 Author Posted January 11 Aperture v0.2.6 Release Notes Major Performance Improvements Sync Jobs (Movies & Series) - Up to 10x Faster Parallel API fetching: Now fetches 4 pages simultaneously from your media server Larger page sizes: Increased from 50-100 to 500-1000 items per request Bulk database operations: Replaced individual INSERT/UPDATE queries with bulk SQL using PostgreSQL's unnest() - reducing thousands of queries to just a few Pre-loaded duplicate checking: O(1) lookups instead of database queries for each item Watch History Sync - Dramatically Faster Bulk INSERT/UPDATE operations for movie and series watch history Bulk DELETE operations for removed items Pre-loaded ID mappings for instant lookups Recommendations Generation - Faster Storage Bulk INSERT for recommendation candidates (was ~100+ individual queries) Bulk INSERT for recommendation evidence using efficient LATERAL joins Bulk UPDATE for AI explanations Metadata Enrichment - Parallel Processing TMDb and OMDb API calls now run in parallel for each item Process multiple items concurrently (5 at a time) TMDb rate limit increased to 40 req/sec (from 20) Critical Bug Fix Watched Content Now Properly Excluded from Recommendations Root Cause Fixed: Series recommendations were incorrectly including watched series because the pipeline only checked recent watch history (limited by recentWatchLimit), not ALL watched series. Series pipeline now queries all watched series IDs for filtering Movie pipeline now explicitly filters by media_type = 'movie' Both movies and series recommendations now correctly exclude watched content by default New Features OMDb Paid Tier Support New toggle in Settings > Integrations > OMDb for paid subscriptions Paid tier enables 40 requests/sec (vs 10 req/sec for free tier) Faster metadata enrichment for users with paid OMDb API keys Incremental "Shows You Watch" Library Updates Library files are now only written when content actually changes Stable dateadded timestamps prevent unnecessary media server rescans Tracks added/unchanged/deleted series counts Only triggers library refresh when changes are detected User Preference: Include Watched Content New toggle moved to User Settings > Preferences tab Choose whether recommendations include content you've already watched Default: exclude watched (recommend new content only) UI Improvements Sidebar Branding Updated logo to match setup wizard style Open Sans font for consistent branding Replaced user avatar at bottom with version number display Progress Bar Fix Sync job progress bars no longer reset during execution Smooth 0-100% progression during the processing phase Performance Summary Operation Before After Improvement Sync 12,000 movies ~5 min ~30 sec 10x faster Watch history sync Individual queries Bulk operations 100x fewer queries Store recommendations ~100 queries 2-3 queries 50x fewer queries Enrichment (parallel) Sequential 5 concurrent 5x faster Platform-Specific Docker Compose Files We now have dedicated docker-compose files for different NAS platforms! No more guessing about paths and network settings. Download for your platform: Unraid - /mnt/user/ paths, ready to go QNAP - Uses qnet driver with static IPs for proper network connectivity Synology - /volume1/ paths, optional macvlan network config Generic/Linux - For other environments
TheGru 143 Posted January 11 Author Posted January 11 Aperture 0.2.7 Release Notes Hey everyone! I've got a solid maintenance-focused release today with a brand new feature and several important bug fixes. New Feature: Missing Poster Repair Tool Ever notice some of your library items are missing poster artwork? This release introduces a new Poster Repair tool under Settings → Maintenance that helps you fix them. How it works: Scan your Emby/Jellyfin library to find movies and series with missing poster images Review the results — see which items are missing posters and whether they have a TMDB ID (required for repair) Select the items you want to fix Repair — Aperture fetches the poster from TMDB and uploads it directly to your media server The whole process streams images through memory (TMDB → Aperture → Emby/Jellyfin) with no local storage. Progress tracking shows real-time updates with a live logs panel so you can see exactly what's happening. Be advised just because you have a TMDB id for your content does not mean TMDB has a poster for it! Bug Fixes Fixed: Job Progress Percentages Exceeding 100% Some users were seeing bizarre progress percentages like 7500% in the activity log. This was caused by a mismatch between what was being counted vs. what was being tracked. The issue affected these background jobs: Sync Movie Libraries Sync Series Libraries Generate Movie Recommendations Generate Series Recommendations All of these now correctly track user progress and display accurate percentages while still showing total counts in the status text. Fixed: Stale Poster Images After Media Server Updates When you update poster artwork in Emby or Jellyfin, Aperture should pick up the change on the next sync. However, we weren't explicitly requesting the ImageTags and BackdropImageTags fields from the API, which meant the image hash tags might not be included in responses. This caused Aperture to keep referencing old cached images even after you changed them in your media server. Now we explicitly request these fields for both movies and series across Emby and Jellyfin. UI Changes Maintenance moved to top-level tab — The Maintenance section has been promoted from a sub-tab under Setup to its own top-level tab in Settings for better visibility. Upgrading Pull the latest image and restart: docker pull ghcr.io/dgruhin-hrizn/aperture:latest docker-compose up -d No database migrations in this release. As always, let me know if you run into any issues!
TheGru 143 Posted January 11 Author Posted January 11 Aperture 0.2.8 Security Fix This release addresses a security issue where API keys and other sensitive data were being logged in plain text. If you're running Aperture in a shared environment or forwarding logs to external services, I recommend updating promptly. What's Changed Sensitive values like media server API keys, OpenAI API keys, TMDb/OMDb API keys, and Trakt credentials are now automatically redacted in all log output Added defense-in-depth protection at the logger level to catch any accidental logging of sensitive fields Log Output Before: {"key":"media_server_api_key","value":"e3e3b408148445fb8ed809e67b3c09c3","msg":"System setting updated"} Log Output After: {"key":"media_server_api_key","value":"[REDACTED]","msg":"System setting updated"} Upgrade Pull the latest image and restart: docker compose pull && docker compose up -d
Mrfoxx 1 Posted January 11 Posted January 11 This sounds like something that is really up my avenue and could be the reason that I swap from Plex to Emby finally 2 questions though: 1. Do the recommendations show up on the homescreen or is it just within the library view? 2. Is it possible to get this running on a different server to the Emby server? For example a VPS external to my Emby server? The VPS would be using a reverse proxy such as Traefik. 1
TheGru 143 Posted January 11 Author Posted January 11 (edited) 3 hours ago, Mrfoxx said: This sounds like something that is really up my avenue and could be the reason that I swap from Plex to Emby finally 2 questions though: 1. Do the recommendations show up on the homescreen or is it just within the library view? 2. Is it possible to get this running on a different server to the Emby server? For example a VPS external to my Emby server? The VPS would be using a reverse proxy such as Traefik. 1. Yes on the Home Screen. There are some screenshots on previous posts. 2. I have no idea, but as long as both machines can see the same media shares I don’t see why not as Aperture must be able to write files to a location Emby can access directly. Unfortunately that level of configuration is beyond what I am looking to support at this time. VPS Deployment - How It Actually Works The Two Separate Problems Problem 1: Aperture ↔ Emby Communication (API) VPS (Aperture) ──── HTTP API ────► Home (Emby) Works fine Aperture calls Emby's API to sync libraries, get metadata, trigger scans. This works over the internet with just a URL and API key. Problem 2: STRM File Delivery + Playback VPS creates STRM files → ??? → Emby reads them → Emby plays content This is where it gets tricky. What's Inside a STRM File /mnt/Media/Movies/Inception (2010)/Inception.mkv It's just a text file with a path. When Emby "plays" this item, it reads the path and streams that file to your client. The Two Requirements for VPS 1. Emby must READ the STRM files Aperture writes to /aperture-libraries/ on the VPS. Emby needs to see those files somehow. Solutions: Mount shared storage (NFS/SMB) on both VPS and Emby's machine Rsync/Syncthing to copy files from VPS → Emby's machine Store on cloud storage both can access 2. Emby must ACCESS the paths inside STRMs The path /mnt/Media/Movies/... must exist on Emby's machine. This is already true if Emby is on your home server with your media. The paths Aperture writes come from Emby's own database. Minimal VPS Setup Docker Compose Clarification The VPS docker-compose you showed is correct, but needs this note: volumes: - ./aperture-libraries:/aperture-libraries # This directory must be shared with your Emby server # Options: NFS mount, rsync cron job, Syncthing, etc. What Definitely WON'T Work VPS with purely local storage and no file sharing to Emby Expecting Emby to somehow "pull" libraries from VPS over HTTP STRM files with streaming URLs (authentication doesn't work) TL;DR Aperture on VPS works if: Emby is reachable via API (URL + API key) STRM files are shared to Emby (NFS, rsync, etc.) Emby has local access to your media files (which it already does) Edited January 11 by TheGru Updated to attempt to explain a remote VPS configuration
akacharos 31 Posted January 11 Posted January 11 Hi TheGru! I am happy to see this momentum in the project A suggestion regarding metadata enrichment: I checked packages/core/src/enrichment/index.ts about the imported data from omdb. Is it possible to add Language and Country? Maybe I am a minority here with a lot of non-english movies , but I think having these information both for relevance and user prompt would help a lot. Example output for api call omdbapi.com/?apikey=<apikey>&i=tt0120669&plot=short {"Title":"Fear and Loathing in Las Vegas","Year":"1998","Rated":"R","Released":"22 May 1998","Runtime":"118 min","Genre":"Adventure, Comedy, Drama","Director":"Terry Gilliam","Writer":"Hunter S. Thompson, Terry Gilliam, Tony Grisoni","Actors":"Johnny Depp, Benicio Del Toro, Tobey Maguire","Plot":"An oddball journalist and his psychopathic lawyer travel to Las Vegas for a series of psychedelic escapades.","Language":"English","Country":"United States","Awards":"1 win & 3 nominations total","Poster":"[https://m.media-amazon.com/images/M/MV5BNjFkNjdiZjUtNzUzNy00NWM5LWFlNDUtNTRiYmJiZWNiYjkwXkEyXkFqcGc@.\_V1_SX300.jpg","Ratings":\[{"Source":"Internet](https://m.media-amazon.com/images/M/MV5BNjFkNjdiZjUtNzUzNy00NWM5LWFlNDUtNTRiYmJiZWNiYjkwXkEyXkFqcGc@.%5C_V1_SX300.jpg%22,%22Ratings%22:%5C%5B%7B%22Source%22:%22Internet) Movie Database","Value":"7.5/10"},{"Source":"Rotten Tomatoes","Value":"51%"},{"Source":"Metacritic","Value":"41/100"}],"Metascore":"41","imdbRating":"7.5","imdbVotes":"316,089","imdbID":"tt0120669","Type":"movie","DVD":"N/A","BoxOffice":"$10,680,275","Production":"N/A","Website":"N/A","Response":"True"}
TheGru 143 Posted January 11 Author Posted January 11 Aperture v0.3.1 Release Date: January 11, 2026 Bug Fixes Embeddings: Studio Data Parsing Fixed a critical bug where studio names in movie and series embeddings were being rendered as [object Object] instead of actual names like "A24" or "Marvel Studios". Background: Migration 0048_studio_jsonb.sql changed the studios column from a text array to JSONB objects (with id and name fields) to support studio image lookups. The embeddings code wasn't updated to handle this new format. Impact: Any embeddings generated after the schema change would have corrupted studio information, potentially degrading recommendation quality for users who rely on studio preferences. Fix: The embeddings generation now properly parses JSONB studio data and extracts the name field. Thanks to @tcx4c70 for this contribution! STRM Files: Playback Compatibility Fixed "No compatible streams available" playback errors in STRM libraries. Problem: STRM files were using streaming URLs that require authentication, but media players opening STRM files don't have access to the session credentials. Solution: STRM files now contain the original file path (e.g., /mnt/Media/Movies/Film.mkv) instead of streaming URLs. This works when the media server has filesystem access to the original media files. Note: This requires your Emby/Jellyfin server to have access to the same storage paths. If running in Docker, ensure the media paths are mounted identically. Upgrade Notes No database migrations required Existing embeddings with corrupted studio data will be regenerated on the next embeddings job run STRM files will be updated automatically on the next sync job Full Changelog fix(embeddings): Studios in embeddings are always object fix(strm): Use original file paths instead of streaming URLs chore: Bump version to 0.3.1 1
horstepipe 422 Posted January 12 Posted January 12 wondering, can a strm file point to a strm file? I am already using them for regular media playback. BR
TheGru 143 Posted January 12 Author Posted January 12 6 hours ago, horstepipe said: wondering, can a strm file point to a strm file? I am already using them for regular media playback. BR No idea. I don’t see why not but you’d have to try. 1
TheGru 143 Posted January 12 Author Posted January 12 Aperture v0.3.2 Release Notes Hey everyone! I've got a substantial update that improves the browsing experience, adds some visual polish, and includes a nice community contribution. Here's what's new: Docker Compose Files docker-compose.yml - Standard deployment docker-compose.prod.yml - Production deployment docker-compose.unraid.yml - Unraid docker-compose.synology.yml - Synology NAS docker-compose.qnap.yml - QNAP NAS Quick Start: # Download your preferred compose file # Start Aperture docker compose up -d # View logs docker compose logs -f Updating to v0.3.2: docker compose pull docker compose up -d Rotating Fanart Headers Person and Studio detail pages now feature rotating backdrop images from their associated movies and TV series! Smooth crossfade transitions between images Shuffled on load for variety Dark gradient overlay ensures text remains readable Images preload before transitioning for seamless playback This makes browsing actor filmographies and studio catalogs feel much more cinematic. Studio & Network Logo Enrichment A new background job fetches high-quality logos from TMDB for your studios and networks: New Job: enrich-studio-logos (runs daily at 5:30 AM by default) Downloads and stores logos locally for fast loading Logos now display on Studio/Network detail pages Falls back to Emby/Jellyfin images if no TMDB match found Run the job manually from the Jobs page to enrich your existing studios immediately. Media Image Proxy (Mixed Content Fix) The Problem: If you're accessing Aperture through a reverse proxy with HTTPS (like most of us do), you've probably seen broken images or mixed content warnings. This happened because Aperture was loading images directly from your Emby/Jellyfin server over HTTP. The Fix: All media server images now route through Aperture's new image proxy endpoint (/api/media/images/*). This means: No more mixed content warnings when using HTTPS Images load correctly even when accessing externally Aggressive caching (24h cache, 7-day stale-while-revalidate) for performance Automatic fallback to a placeholder when images fail to load This applies to posters, backdrops, actor thumbnails, and all other media server images across the entire app. Person & Studio Detail Pages You can now click on actors, directors, studios, and networks throughout the app to see dedicated detail pages! Person Detail Pages (/person/:name) Rotating fanart header from their filmography Profile image and name Carousel of movies they appear in Carousel of series they appear in (with "add to watching" button) Works for actors AND directors Studio Detail Pages (/studio/:name) Rotating fanart header from their content Studio/network logo (from TMDB when available) Carousel of their movies Carousel of their series (with "add to watching" button) Works for production studios AND TV networks Where you can click: Watch Stats page: Actors, Directors, Studios, Networks are all now clickable More click-through navigation coming in future updates Mobile Responsive Fixes Fixed horizontal scrolling issues on mobile devices (tested on iPhone 15): Main Layout: Added overflow-x: hidden and maxWidth: 100% to prevent content overflow Page Headers: Added flexWrap to headers on Recommendations, Top Picks pages so buttons wrap properly Movies Filters: Filter controls now stack vertically on mobile instead of overflowing Quick Stats Bar: Now displays as a 2x2 grid on mobile instead of a horizontal scroll Settings Tabs: Main tabs now scroll horizontally on mobile (7 tabs don't fit on small screens) Poster Grids: Responsive poster sizing ensures even spacing at all breakpoints (no more gutter issues) The app should now feel much better on phones and tablets. Performance: Embeddings Bulk Insertion Community Contribution by @tcx4c70 (PR #18) The embedding generation jobs now use bulk insertion when writing to the vector database, resulting in approximately 10x faster embedding insertion. This significantly speeds up the initial setup and any re-generation of movie/series embeddings. Thanks Adam for the contribution! Full Changelog New Features Add rotating fanart backdrop headers to Person and Studio detail pages Add studio/network logo enrichment job (enrich-studio-logos) Display TMDB logos on Studio/Network detail pages Add media image proxy endpoint for mixed content prevention Add Person detail page with filmography carousels Add Studio detail page with content carousels Make Watch Stats actors/directors/studios/networks clickable Add "watching" toggle button to series on Person/Studio detail pages Bug Fixes Fix mixed content warnings when accessing Aperture via HTTPS reverse proxy Fix horizontal scroll on mobile devices Fix responsive poster sizing for even grid spacing on mobile Fix React hooks error on detail pages (useMemo before early returns) Fix backdrop crossfade to use double-buffer approach for seamless transitions Apply image proxy to all remaining direct Emby/Jellyfin image URLs Performance 10x faster embedding insertion via bulk insert (thanks @tcx4c70!) Technical New /api/discover/person/:name endpoint with backdrop URLs New /api/discover/studio/:name endpoint with backdrop URLs New RotatingBackdrop component with preloading and crossfade Added enrich-studio-logos to job scheduler defaults Added useProxiedImageUrl hook and getProxiedImageUrl utility Responsive breakpoints added to multiple components As always, let me know if you run into any issues. Happy watching!
akacharos 31 Posted January 12 Posted January 12 18 hours ago, akacharos said: Hi TheGru! I am happy to see this momentum in the project A suggestion regarding metadata enrichment: I checked packages/core/src/enrichment/index.ts about the imported data from omdb. Is it possible to add Language and Country? Maybe I am a minority here with a lot of non-english movies , but I think having these information both for relevance and user prompt would help a lot. Example output for api call omdbapi.com/?apikey=<apikey>&i=tt0120669&plot=short {"Title":"Fear and Loathing in Las Vegas","Year":"1998","Rated":"R","Released":"22 May 1998","Runtime":"118 min","Genre":"Adventure, Comedy, Drama","Director":"Terry Gilliam","Writer":"Hunter S. Thompson, Terry Gilliam, Tony Grisoni","Actors":"Johnny Depp, Benicio Del Toro, Tobey Maguire","Plot":"An oddball journalist and his psychopathic lawyer travel to Las Vegas for a series of psychedelic escapades.","Language":"English","Country":"United States","Awards":"1 win & 3 nominations total","Poster":"[https://m.media-amazon.com/images/M/MV5BNjFkNjdiZjUtNzUzNy00NWM5LWFlNDUtNTRiYmJiZWNiYjkwXkEyXkFqcGc@.\_V1_SX300.jpg","Ratings":\[{"Source":"Internet](https://m.media-amazon.com/images/M/MV5BNjFkNjdiZjUtNzUzNy00NWM5LWFlNDUtNTRiYmJiZWNiYjkwXkEyXkFqcGc@.%5C_V1_SX300.jpg%22,%22Ratings%22:%5C%5B%7B%22Source%22:%22Internet) Movie Database","Value":"7.5/10"},{"Source":"Rotten Tomatoes","Value":"51%"},{"Source":"Metacritic","Value":"41/100"}],"Metascore":"41","imdbRating":"7.5","imdbVotes":"316,089","imdbID":"tt0120669","Type":"movie","DVD":"N/A","BoxOffice":"$10,680,275","Production":"N/A","Website":"N/A","Response":"True"} @TheGru,this is just to bump , as my post was pending moderation for some reason and probably you missed it.
beta666 3 Posted January 12 Posted January 12 Vor 1 Stunde sagte TheGru: Aperture v0.3.2 Versionshinweise Hallo zusammen! Ich habe ein wesentliches Update, das das Surferlebnis verbessert, etwas visuelleschliff verleiht und einen schönen Community-Beitrag enthält. Hier ist, was neu ist: Docker-Dateien erstellen docker-compose.yml - Standardbereitstellung docker-compose.prod.yml - Produktionsbereitstellung Docker-compose.unraid.yml - Unraid docker-compose.synology.yml - Synology NAS Docker-compose.qnap.yml - QNAP NAS Schnellstart: # Download your preferred compose file # Start Aperture docker compose up -d # View logs docker compose logs -f Aktualisierung auf v0.3.2: docker compose pull docker compose up -d Rotierende Fanart-Header Personen- und Studio-Detailseiten enthalten jetzt rotierende Hintergrundbilder aus den dazugehörigen Filmen und Fernsehserien! Sanfte Crossfade-Übergänge zwischen Bildern Auf Last für Abwechslung gemischt Dunkles Farbverlaufs-Overlay sorgt dafür, dass der Text lesbar bleibt Bilder vor dem Übergang vor dem Übergang für eine nahtlose Wiedergabe Dadurch fühlen sich das Durchsuchen von Filmografien und Studiokatalogen von Schauspielern viel filmischer an. Studio- und Netzwerklogo-Anreicherung Ein neuer Hintergrundjob holt hochwertige Logos von TMDB für Ihre Studios und Netzwerke: New Job: enrich-studio-logos (runs daily at 5:30 AM by default) Lädt und speichert Logos lokal für schnelles Laden Logos werden jetzt auf Studio/Netzwerk-Detailseiten angezeigt Fällt zurück auf Emby/Jellyfin-Bilder, wenn kein TMDB-Match gefunden wird Führen Sie den Auftrag manuell über die Jobs-Seite aus, um Ihre bestehenden Studios sofort zu bereichern. Medienbild-Proxy (Fix für gemischte Inhalte) Das Problem: Wenn Sie über einen Reverse-Proxy mit HTTPS auf Aperture zugreifen (wie die meisten von uns), haben Sie wahrscheinlich defekte Bilder oder Warnungen mit gemischten Inhalten gesehen. Dies geschah, weil Aperture Bilder direkt von Ihrem Emby/Jellyfin-Server über HTTP lud. Die Lösung: Alle Medienserver-Images werden jetzt über den neuen Image-Proxy-Endpunkt von Aperture (/api/media/images/*) geleitet. Das bedeutet: Keine Warnungen mit gemischtem Inhalt mehr bei Verwendung von HTTPS Bilder werden auch beim externen Zugriff korrekt geladen Aggressives Caching (24 Stunden Cache, 7-Tage-Staung-während-Revalidierung) für Leistung Automatischer Fallback zu einem Platzhalter, wenn Bilder nicht geladen werden Dies gilt für Poster, Kulissen, Miniaturansichten von Schauspielern und alle anderen Medienserver-Bilder in der gesamten App. Personen- und Studio-Detailseiten Sie können jetzt in der App auf Schauspieler, Regisseure, Studios und Netzwerke klicken, um spezielle Detailseiten anzuzeigen! Personendetailseiten (/person/:name) Rotierende Fanart-Header aus ihrer Filmografie Profilbild und Name Karussell von Filmen, in denen sie erscheinen Karussell der Serien, in der sie erscheinen (mit "Zum Ansehen hinzufügen"-Schaltfläche) Werke für Schauspieler UND Regisseure Studio-Detailseiten (/studio/:name) Drehen von Fanart-Headern aus ihrem Inhalt Studio-/Netzwerklogo (von TMDB, wenn verfügbar) Karussell ihrer Filme Karussell ihrer Serie (mit "Zum Ansehen hinzufügen"-Taste) Arbeitet für Produktionsstudios UND TV-Netzwerke Wo Sie klicken können: Statistikseite ansehen: Schauspieler, Regisseure, Studios, Netzwerke sind jetzt alle anklickbar Weitere Klick-Durchfahrt in zukünftigen Updates Mobile Responsive Fixes Probleme mit dem horizontalen Scrollen auf Mobilgeräten behoben (auf dem iPhone 15 getestet): Main Layout: Added overflow-x: hidden and maxWidth: 100% to prevent content overflow Page Headers: Added flexWrap to headers on Recommendations, Top Picks pages so buttons wrap properly Filme Filter: Filtersteuerungen stapeln sich jetzt vertikal auf Mobilgeräten, anstatt sie zu überlaufen Schnellstatistikleiste: Jetzt als 2x2-Raster auf Mobilgeräten anstelle einer horizontalen Bildlaufanzeige angezeigt Einstellungen Registerkarten: Haupt-Tabs scrollen jetzt horizontal auf Mobilgeräten (7 Registerkarten passen nicht auf kleine Bildschirme) Postergitter: Die reaktionsschnelle Poster-Sizing sorgt für einen gleichen Abstand an allen Haltepunkten (keine Probleme mehr mit der Dachrinne) Die App sollte sich jetzt auf Telefonen und Tablets viel besser anfühlen. Leistung: Einbettungen Masseneinfügung Beitrag der Gemeinschaft von @tcx4c70 (PR #18) Die Einbettungs-Generierungsaufträge verwenden jetzt beim Schreiben in die Vektordatenbank eine Masseneinfügung, was zu einer etwa 10-mal schnelleren Einbettungseinfügung führt. Dies beschleunigt die anfängliche Einrichtung und jede Neuerzeugung von Film-/Serien-Einbettungen erheblich. Danke Adam für den Beitrag! Vollständiges Änderungsprotokoll Neue Funktionen Fügen Sie rotierende Fanart-Hintergrund-Header zu Personen- und Studio-Detailseiten hinzu Job zur Bereicherung von Studio-/Netzwerklogos hinzufügen (enrich-studio-logos) TMDB-Logos auf Studio-/Netzwerk-Detailseiten anzeigen Hinzufügen von Medien-Image-Proxy-Endpunkt zur Verhinderung von gemischten Inhalten Personendetailseite mit Filmografie-Karussells hinzufügen Studio-Detailseite mit Inhaltskarussells hinzufügen Watch-Statistiken Schauspieler/Regisseure/Studios/Netzwerke anklickbar machen Fügen Sie den Schalter "Watching" zu Serien auf den Personen-/Studio-Detailseiten hinzu Fehlerbehebungen Beheben Sie gemischte Inhaltswarnungen beim Zugriff auf Aperture über HTTPS-Rückwärtsproxy Horizontales Scrollen auf mobilen Geräten beheben Beheben Sie die responsive Poster-Sizierung für einen gleichen Rasterabstand auf Mobilgeräten React-Hooks-Fehler auf Detailseiten beheben (Memo vor frühen Rücksendungen verwenden) Fix backdrop crossfade, um einen Double-Puffer-Ansatz für nahtlose Übergänge zu verwenden Bild-Proxy auf alle verbleibenden direkten Emby/Jellyfin-Bild-URLs anwenden Leistung 10x schnelleres Einbetten über Bulk-Einsatz (danke @tcx4c70!) Technisch Neuer /api/discover/person/:name-Endpunkt mit Hintergrund-URLs New /api/discover/studio/:name endpoint with backdrop URLs Neue RotatingBackdrop-Komponente mit Vorladen und Crossfade Added enrich-studio-logos to job scheduler defaults useProxiedImageUrl-Hook und getProxiedImageUrl-Dienstprogramm hinzugefügt Responsive Breakpoints zu mehreren Komponenten hinzugefügt Lassen Sie es mich wie immer wissen, wenn Sie auf irgendwelche Probleme stoßen. Viel Spaß beim Anschauen! ???
TheGru 143 Posted January 12 Author Posted January 12 (edited) 29 minutes ago, beta666 said: ??? That specific 429 message is almost always insufficient_quota — meaning the user’s account/key has no available spend/quota. Common causes: They don’t have billing enabled / no payment method Free trial credits expired They set a hard spend limit (sometimes defaulting to $0) They hit their monthly cap They’re using a key from the wrong org/project that has no billing attached This is different from a rate-limit 429. Rate limit errors are about request volume. This one is about billing/quota. Log in to your OpenAI Platform account and check: Billing enabled + payment method exists Usage Limits / Hard limit isn’t set too low (or $0) Org/project for the API key actually has billing If they just changed billing, try generating a new API key In the app I’m adding: Better error handling to detect this case and show “Your key has no available quota/billing” A “Key Health Check” request on key entry so it fails fast with guidance Lower default concurrency (I batch things — totally fine for Tier 5, but not for new accounts) TL;DR If someone uses their own API key and gets this error, their OpenAI account doesn’t currently have quota/billing available. The fix is in their OpenAI billing/limits setup — not in the app. Edited January 12 by TheGru
GoldSpacer 11 Posted January 12 Posted January 12 Hey, I am LOVING Aperture. How feasible would it be for the Top Picks to have an option to be based on popular picks via the internet rather than based on other emby users? I only have 3 total with vastly different tastes. Another idea if Aperture is able to create and remove libraries and assign them to users access, would be to make libraries combined with the playlist AI creation feature. Maybe have a configurable number of genres or playlists that would show as libraries. It's more a workaround until Emby adds the more customizable home screen, but with AI helping to make the playlists and libraries.
TheGru 143 Posted January 12 Author Posted January 12 17 minutes ago, GoldSpacer said: Hey, I am LOVING Aperture. How feasible would it be for the Top Picks to have an option to be based on popular picks via the internet rather than based on other emby users? I only have 3 total with vastly different tastes. Another idea if Aperture is able to create and remove libraries and assign them to users access, would be to make libraries combined with the playlist AI creation feature. Maybe have a configurable number of genres or playlists that would show as libraries. It's more a workaround until Emby adds the more customizable home screen, but with AI helping to make the playlists and libraries. Great suggestion for external top picks sourcing. I’d have to decide what source or sources to make available as a setting. Any ideas? I think I understand your second question but for clarity can you provide a specific example?
beta666 3 Posted January 12 Posted January 12 3 minutes ago, TheGru said: Great suggestion for external top picks sourcing. I’d have to decide what source or sources to make available as a setting. Any ideas? I think I understand your second question but for clarity can you provide a specific example? The best streaming providers (Netflix) (Prime) (Hbo Max) and so on. The new stalling of 2026 films and series
GoldSpacer 11 Posted January 12 Posted January 12 (edited) I'm not sure providers, maybe give the option on imdb, rotten tomatoes, or others, or a combination of them. For #2, I was thinking various playlists like holiday themed, super hero, top rated of some streaming service, or top recently viewed of some streaming service, top recently viewed of some genre, which could be made into libraries. Maybe a configurable number, so if there were 30 playlists, pick 10 of the 30 with the option to pin specific ones, like holiday ones, and make them libraries for all users. Edited January 12 by GoldSpacer added context
TheGru 143 Posted January 12 Author Posted January 12 2 minutes ago, GoldSpacer said: I'm not sure providers, maybe give the option on imdb, rotten tomatoes, or others, or a combination of them. For #2, I was thinking various playlists like holiday themed, super hero, top rated of some streaming service, or top recently viewed of some streaming service, top recently viewed of some genre, which could be made into libraries. Maybe a configurable number, so if there were 30 playlists, pick 10 of the 30 with the option to pin specific ones, like holiday ones. the issue is none of those have APIs that are publicly available and or free, and I rather not build in anything that relies on scraping, it becomes long term tech debt.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now