-
Notifications
You must be signed in to change notification settings - Fork 1
Smart Playlist Examples
Ready-to-use smart playlist files for common filtering scenarios. Copy the XML code or download the .xsp files directly.
- Copy the XML code from the example
- Open a text editor (Notepad, VS Code, etc.)
- Paste the code
- Save as
filename.xsp(not.txt) - Move the file to your Kodi playlists folder:
-
Windows:
%APPDATA%\Kodi\userdata\playlists\video\ -
Linux:
~/.kodi/userdata/playlists/video/ -
macOS:
~/Library/Application Support/Kodi/userdata/playlists/video/ -
LibreELEC/OSMC:
/storage/.kodi/userdata/playlists/video/
-
Windows:
Download links are provided for each example. Save directly to your playlists folder.
- Restart Kodi (or go to Videos → Playlists to verify)
- In EasyTV settings, select the playlist for filtering
Filter to comedy content.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="tvshows">
<n>TV Shows - Comedy</n>
<match>all</match>
<rule field="genre" operator="is">
<value>Comedy</value>
</rule>
</smartplaylist>📥 Download: TV Shows - Comedy.xsp
Serious content for focused viewing.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="tvshows">
<n>TV Shows - Drama and Thriller</n>
<match>one</match>
<rule field="genre" operator="is">
<value>Drama</value>
</rule>
<rule field="genre" operator="is">
<value>Thriller</value>
</rule>
<rule field="genre" operator="is">
<value>Crime</value>
</rule>
</smartplaylist>📥 Download: TV Shows - Drama and Thriller.xsp
Content from specific streaming networks.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="tvshows">
<n>TV Shows - HBO and Netflix</n>
<match>one</match>
<rule field="studio" operator="contains">
<value>HBO</value>
</rule>
<rule field="studio" operator="contains">
<value>Netflix</value>
</rule>
</smartplaylist>📥 Download: TV Shows - HBO and Netflix.xsp
Shows with at least 10 episodes that you haven't fully watched — perfect for a marathon.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="tvshows">
<n>TV Shows - Binge-Ready</n>
<match>all</match>
<rule field="numberofepisodes" operator="greaterthan">
<value>10</value>
</rule>
<rule field="playcount" operator="is">
<value>0</value>
</rule>
</smartplaylist>📥 Download: TV Shows - Binge-Ready.xsp
All animated content. Works great with EasyTV's random-order shows feature.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="tvshows">
<n>TV Shows - Animation</n>
<match>all</match>
<rule field="genre" operator="is">
<value>Animation</value>
</rule>
</smartplaylist>📥 Download: TV Shows - Animation.xsp
Educational and documentary content.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="tvshows">
<n>TV Shows - Documentary</n>
<match>all</match>
<rule field="genre" operator="is">
<value>Documentary</value>
</rule>
</smartplaylist>📥 Download: TV Shows - Documentary.xsp
Family content based on folder location. This playlist serves as a building block — other playlists can exclude it.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="movies">
<n>Movies - Kids</n>
<match>all</match>
<rule field="path" operator="contains">
<value>/Kids/</value>
</rule>
</smartplaylist>📥 Download: Movies - Kids.xsp
Path filtering: This uses the
pathfield to include movies stored in a/Kids/folder. Adjust the value to match your folder structure. Path-based filtering is reliable when you've organized your library by audience or content type.
Nostalgic content from two classic decades, excluding kids content by referencing the Kids playlist.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="movies">
<n>Movies - 80s and 90s</n>
<match>all</match>
<rule field="year" operator="greaterthan">
<value>1979</value>
</rule>
<rule field="year" operator="lessthan">
<value>2000</value>
</rule>
<rule field="playlist" operator="isnot">
<value>Movies - Kids</value>
</rule>
</smartplaylist>📥 Download: Movies - 80s and 90s.xsp
Playlist exclusion: This example uses
playlistwithisnotto exclude all movies that appear in the "Movies - Kids" playlist. This is powerful because:
- You define "kids content" once in the Kids playlist
- Any playlist can then exclude it with a single rule
- Changes to the Kids playlist automatically apply everywhere
Movies with rating of 7 or higher.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="movies">
<n>Movies - Highly Rated</n>
<match>all</match>
<rule field="rating" operator="greaterthan">
<value>6.9</value>
</rule>
</smartplaylist>📥 Download: Movies - Highly Rated.xsp
Movies in 4K resolution — show off your setup.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="movies">
<n>Movies - 4K UHD</n>
<match>all</match>
<rule field="videoresolution" operator="greaterthan">
<value>1080</value>
</rule>
</smartplaylist>📥 Download: Movies - 4K UHD.xsp
Highly rated movies you haven't seen — the best of your backlog.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="movies">
<n>Movies - Quality Unwatched</n>
<match>all</match>
<rule field="playcount" operator="is">
<value>0</value>
</rule>
<rule field="rating" operator="greaterthan">
<value>7</value>
</rule>
</smartplaylist>📥 Download: Movies - Quality Unwatched.xsp
Romantic movies that are actually good.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="movies">
<n>Movies - Date Night</n>
<match>all</match>
<rule field="genre" operator="is">
<value>Romance</value>
</rule>
<rule field="rating" operator="greaterthan">
<value>6</value>
</rule>
</smartplaylist>📥 Download: Movies - Date Night.xsp
Seasonal content using custom tags.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="movies">
<n>Movies - Christmas</n>
<match>all</match>
<rule field="tag" operator="is">
<value>christmas</value>
</rule>
</smartplaylist>📥 Download: Movies - Christmas.xsp
Using tags: This playlist requires you to add a "christmas" tag to your movies in Kodi. Edit a movie's info and add the tag manually. Tags are great for creating custom collections that don't fit standard metadata like genre or year — think "Halloween", "Summer", "Comfort Movies", etc.
Note: Your library may already have scraper-added tags like "sequel", "based on novel or book", or "female protagonist". Check your library to see what's available — you might be able to create interesting playlists without any manual tagging.
Movies under 100 minutes for when time is limited.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smartplaylist type="movies">
<n>Movies - Short</n>
<match>all</match>
<rule field="time" operator="lessthan">
<value>100</value>
</rule>
</smartplaylist>📥 Download: Movies - Short.xsp
The <match> element controls how multiple rules combine:
| Match | Logic | Use When |
|---|---|---|
all |
AND | Content must match ALL rules |
one |
OR | Content must match ANY rule |
Important: When excluding content (using isnot, doesnotcontain), always use match all. Exclusions with OR logic can cause unexpected results.
| Operator | Use For |
|---|---|
is |
Exact match |
isnot |
Exclude exact match |
contains |
Partial text match |
doesnotcontain |
Exclude partial match |
greaterthan |
Numbers above value |
lessthan |
Numbers below value |
inthelast |
Date within period (e.g., "30 days") |
Playlists can reference other playlists using the playlist field. This is powerful for creating reusable building blocks:
<!-- Include content from another playlist -->
<rule field="playlist" operator="is">
<value>Movies - Kids</value>
</rule>
<!-- Exclude content from another playlist -->
<rule field="playlist" operator="isnot">
<value>Movies - Kids</value>
</rule>Use cases:
- Define "Kids content" once, exclude it from multiple adult playlists
- Create a "Favorites" playlist, then make "Unwatched Favorites"
- Build complex filters by combining simpler playlists
Important: The referenced playlist must exist and have the exact same name (case-sensitive).
Genres depend on your scraper and library. These are typically available:
Widely used: Action, Adventure, Animation, Comedy, Crime, Documentary, Drama, Family, Fantasy, History, Horror, Music, Mystery, Romance, Science Fiction, Thriller, War, Western
Less common: Kids, News, Reality, Talk, TV Movie
Combined genres: Some scrapers provide "Action & Adventure" or "Sci-Fi & Fantasy" — these are rare and library-dependent.
Tip: Check your own library's genres before creating playlists. In Kodi, go to Videos → Movies → Genres to see what's actually in your database.
title, originaltitle, plot, tvshowstatus, votes, rating, userrating, year, genre, director, actor, numberofepisodes, numberofwatchedepisodes, playcount, path, studio, mpaa, dateadded, lastplayed, inprogress, tag, playlist
title, originaltitle, plot, plotoutline, tagline, votes, rating, userrating, time, writer, playcount, lastplayed, inprogress, genre, country, year, director, actor, mpaa, top250, studio, trailer, filename, path, set, tag, dateadded, videoresolution, audiochannels, audiocount, subtitlecount, videocodec, audiocodec, audiolanguage, subtitlelanguage, videoaspectratio, hdrtype, playlist
Reference: Kodi Wiki - Smart Playlist Rules
-
Check your library first — Go to Videos → Movies → Genres (or Tags) to see what values actually exist in your database. Genres and tags are library-dependent.
-
Start in the GUI — Create playlists using Kodi's built-in editor first, then examine the
.xspfile to learn the correct field names and syntax. -
Use path filtering — When metadata is inconsistent, filtering by folder path (
/Kids/,/4K/,/Documentaries/) is reliable. -
Leverage existing tags — Your scraper may have already added useful tags like "sequel", "based on novel or book", etc. Check what's available before manually tagging.
-
Build reusable playlists — Create base playlists (like "Movies - Kids") that other playlists can reference or exclude.
-
Combine with EasyTV — Use playlists for broad filtering, then use EasyTV's duration and episode settings for fine-tuning.
- Smart Playlist Integration — How filtering works with EasyTV
- Settings Reference — All EasyTV settings
- Random-Order Shows — Shuffle-friendly content setup
EasyTV — No scrolling. No deciding. Just watching.
Home • Installation • Settings • Troubleshooting • GitHub