{"id":47685658,"url":"https://github.com/rusty4444/plex-recently-added-card","last_synced_at":"2026-04-02T14:48:58.107Z","repository":{"id":346248696,"uuid":"1189080906","full_name":"rusty4444/plex-recently-added-card","owner":"rusty4444","description":"Custom Home Assistant Lovelace card showing recently added movies and TV shows from Plex","archived":false,"fork":false,"pushed_at":"2026-03-23T01:28:33.000Z","size":131,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-23T20:38:33.806Z","etag":null,"topics":["hacs","hacs-default","home-assistant","json","lovelace","lovelace-custom-card","plex","plex-media-server"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rusty4444.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-23T00:34:58.000Z","updated_at":"2026-03-23T07:59:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rusty4444/plex-recently-added-card","commit_stats":null,"previous_names":["rusty4444/plex-recently-added-card"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/rusty4444/plex-recently-added-card","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty4444%2Fplex-recently-added-card","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty4444%2Fplex-recently-added-card/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty4444%2Fplex-recently-added-card/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty4444%2Fplex-recently-added-card/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rusty4444","download_url":"https://codeload.github.com/rusty4444/plex-recently-added-card/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty4444%2Fplex-recently-added-card/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31308446,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacs","hacs-default","home-assistant","json","lovelace","lovelace-custom-card","plex","plex-media-server"],"created_at":"2026-04-02T14:48:57.357Z","updated_at":"2026-04-02T14:48:58.102Z","avatar_url":"https://github.com/rusty4444.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Plex Recently Added Card\n\n\u003e **⚠️ This card has been superseded by [recently-added-media-card](https://github.com/rusty4444/recently-added-media-card)** — a unified card that supports Plex, Kodi, Jellyfin, and Emby in one package, with inline trailer playback, themed accents, swipe navigation, and a full visual editor. This repo will remain available but will not receive new features.\n\n---\n\n\n\nA custom Home Assistant Lovelace card that shows your recently added movies and TV shows from Plex. Auto-cycles through items with poster art, blurred background, synopsis, ratings, and color-coded indicators.\n\n[![HACS](https://img.shields.io/badge/HACS-Custom-blue)](https://github.com/hacs/integration)\n![Platform](https://img.shields.io/badge/Platform-Home_Assistant-blue)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/recently-added.jpg\" alt=\"Plex Recently Added Card\" width=\"600\"\u003e\n\u003c/p\u003e\n\n## Features\n\n- Displays the 5 most recently added movies and 5 most recently added TV shows\n- Interleaved cycling — alternates between movies and TV shows\n- Poster art with blurred background transitions\n- Synopsis, ratings, genre, and \"time ago\" for each item\n- Color-coded dots — gold for movies, blue for TV shows\n- Connects directly to your Plex server (no additional integrations required)\n- Deduplicates TV shows — only shows the most recent entry per series\n- **Visual editor** — configure the card through a graphical UI, no YAML required\n- **Trailers** — tap the trailer button on movies and TV shows to watch YouTube trailers (requires a free TMDB API key)\n\n---\n\n## Install via HACS (Recommended)\n\n1. Open **HACS** in Home Assistant\n2. Click the three dots (top right) → **Custom repositories**\n3. Enter `https://github.com/rusty4444/plex-recently-added-card` and select **Dashboard** as the category\n4. Click **Add**\n5. Search for \"Plex Recently Added Card\" in HACS and click **Install**\n6. Restart Home Assistant\n\nThe Lovelace resource will be registered automatically.\n\n## Install Manually\n\n1. Download `plex-recently-added-card.js` from the [latest release](https://github.com/rusty4444/plex-recently-added-card/releases/latest)\n2. Place it in your `\u003cconfig\u003e/www/` directory\n3. Go to **Settings → Dashboards** → three dots (top right) → **Resources**\n4. Click **Add Resource**\n5. URL: `/local/plex-recently-added-card.js`\n6. Type: **JavaScript Module**\n\n---\n\n## Visual Editor\n\nThe card includes a built-in visual editor. When you add or edit the card, you'll see a graphical form instead of raw YAML.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/visual-editor.jpg\" alt=\"Visual Editor\" width=\"500\"\u003e\n\u003c/p\u003e\n\nYou can still use YAML if you prefer — click \"Show code editor\" at the bottom of the editor.\n\n---\n\n## Configuration\n\nSearch for the card by name in the **Add Card** dialog — you can configure everything using the visual editor.\n\nOr add a **Manual card** with this YAML:\n\n```yaml\ntype: custom:plex-recently-added-card\nplex_url: http://YOUR_PLEX_IP:32400\nplex_token: YOUR_PLEX_TOKEN\nmovies_count: 5\nshows_count: 5\ncycle_interval: 8\ntitle: Recently Added\ntmdb_api_key: YOUR_TMDB_READ_ACCESS_TOKEN  # Optional: enables trailer button for movies\n```\n\nFor best results, set the card to span the full width of a section and give it plenty of vertical space (e.g., 8+ grid rows).\n\n### Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `plex_url` | string | **Required** | Your Plex server URL (e.g., `http://192.168.1.100:32400`) |\n| `plex_token` | string | **Required** | Your Plex authentication token |\n| `movies_count` | number | `5` | Number of recently added movies to display |\n| `shows_count` | number | `5` | Number of recently added TV shows to display |\n| `cycle_interval` | number | `8` | Seconds between cycling to the next item |\n| `title` | string | `\"Recently Added\"` | Header text (set to empty string to hide) |\n| `tmdb_api_key` | string | Empty (trailers disabled) | TMDB Read Access Token — enables the trailer button on movies |\n| `fill_height` | boolean | `true` | When enabled, card stretches to fill its container. Disable if the card appears collapsed |\n| `card_height` | number | `300` | Card height in pixels (only used when `fill_height` is `false`) |\n\n### Finding your Plex token\n\n1. Sign in to the Plex Web App\n2. Browse to any media item\n3. Click **Get Info** → **View XML**\n4. The token is in the URL as `X-Plex-Token=XXXXX`\n\n---\n\n## How It Works\n\n- Connects directly to your Plex server's API (no HA Plex integration needed for this card)\n- Discovers all movie and TV libraries automatically\n- Fetches recently added items from each library\n- Deduplicates TV shows so you only see one entry per series (the most recent)\n- Interleaves movies and shows for variety (movie, show, movie, show...)\n- Pre-loads poster and background art for smooth transitions\n\n---\n\n## Trailers\n\nTap the **Trailer** button on any movie or TV show to watch its YouTube trailer. This feature requires a free TMDB (The Movie Database) API key.\n\nFor **movies**, the card looks up the movie trailer directly from TMDB.\n\nFor **TV shows**, the card tries to find the best available trailer in this order:\n1. Season-specific trailer (e.g., the Season 2 trailer)\n2. Series trailer (the main show trailer)\n3. If no trailer is found on TMDB, the button is hidden for that item\n\nThe card fetches the TMDB ID from Plex's movie metadata (the `Guid` array), then uses it to look up trailers via the TMDB API.\n\n### How to get a TMDB Read Access Token\n\n1. Create a free account at [themoviedb.org](https://www.themoviedb.org/signup)\n2. Go to [Settings → API](https://www.themoviedb.org/settings/api)\n3. Request an API key (select \"Developer\" and fill in basic info — any values work for personal use)\n4. Once approved, copy the **Read Access Token** (the long string starting with `eyJ...`) — not the shorter API Key\n5. Add it to your card config as `tmdb_api_key`\n\nThe card uses TMDB to look up movie trailers by matching the media's TMDB ID. Trailer results are cached so each movie is only looked up once.\n\n---\n\n## Troubleshooting\n\n- **Card not appearing after install**: Clear your browser cache, or append `?v=2` to the resource URL in Settings → Dashboards → Resources\n- **No items showing**: Double-check your `plex_url` and `plex_token` — the card connects directly to Plex, not through HA. Make sure the Plex URL is reachable from the device viewing the dashboard.\n- **CORS errors in browser console**: If your Plex server is on a different host, you may need to allow CORS in Plex settings or access the dashboard via the same network.\n- **Card blank when HA is served over HTTPS**: If you access HA via HTTPS (Nabu Casa, nginx reverse proxy, etc.), your browser will block HTTP requests to Plex (mixed content). Use Plex's built-in HTTPS URL instead — Plex provides valid certificates via `.plex.direct` domains. To find yours:\n  1. Go to `https://plex.tv/api/resources?X-Plex-Token=YOUR_TOKEN`\n  2. Find your server's `.plex.direct` URL in the connections list (e.g., `https://192-168-1-100.xxxxxxxxxx.plex.direct:32400`)\n  3. Use that as your `plex_url` in the card config\n\n---\n\n## Known Issues\n\n- **Geo-restricted trailers**: Some trailers may show \"Video unavailable — The uploader has not made this video available in your country.\" This is a YouTube/TMDB restriction and cannot be fixed by the card.\n\n---\n\n## Related\n\nLooking for a cinema-style \"Now Showing\" display for when Plex is actively playing? Check out [plex-now-showing](https://github.com/rusty4444/plex-now-showing).\n\nUsing Kodi instead of Plex? Check out [kodi-recently-added-card](https://github.com/rusty4444/kodi-recently-added-card) and [kodi-now-showing](https://github.com/rusty4444/kodi-now-showing).\n\nUsing Jellyfin? Check out [jellyfin-recently-added-card](https://github.com/rusty4444/jellyfin-recently-added-card) and [jellyfin-now-showing](https://github.com/rusty4444/jellyfin-now-showing).\n\nUsing Emby? Check out [emby-now-showing](https://github.com/rusty4444/emby-now-showing) and [emby-recently-added-card](https://github.com/rusty4444/emby-recently-added-card).\n\n---\n\n## Credits\n\nBuilt by Sam Russell — AI used in development.\n\nYouTube trailer embedding approach adapted from [ha-youtubevideocard](https://github.com/loryanstrant/ha-youtubevideocard) by [loryanstrant](https://github.com/loryanstrant).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frusty4444%2Fplex-recently-added-card","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frusty4444%2Fplex-recently-added-card","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frusty4444%2Fplex-recently-added-card/lists"}