.strm Files for Media Server Integration
Learn how to use M3U Editor's .strm file generation to integrate your IPTV content with Plex, Jellyfin, Emby, and other media servers.
🎯 What are .strm Files?
.strm files are simple text files containing a stream URL. Media servers like Plex, Jellyfin, and Emby can read these files and play the streams as if they were local media files.
Example .strm file content:
http://your-ip:36400/stream/episode/12345
Benefits
✅ Organize IPTV content like local media
✅ Use media server features (watched status, collections, etc.)
✅ Better metadata via TMDB integration
✅ Automatic library updates when content changes
✅ Compatible with existing media server workflows
🚀 Quick Start
1. Enable .strm File Generation
For Series:
- Go to Settings → Streams tab
- Enable "Enable .strm file generation" under "Series stream file settings"
- Set Series Sync Location:
/path/to/your/Series - Configure path structure and metadata options
- Click Save Settings
For VOD:
- Same location, but under "VOD stream file settings"
- Set VOD Sync Location:
/path/to/your/Movies
2. Configure a Series/VOD
- Go to your Series or VOD channel
- Click Edit
- Enable the series/VOD
- Click Sync .strm Files (if available)
3. Add to Media Server
- In Plex/Jellyfin/Emby, add new library
- Point to your sync location (
/path/to/your/Series) - Set library type (TV Shows or Movies)
- Scan library
⚙️ Configuration Options
Path Structure
Control how folders are organized:
For Series
Category Folder
- Example:
/Series/Sports/ - Groups by category/genre
Series Folder
- Example:
/Series/Sports/NBA Games/ - Individual folder per series
Season Folder
- Example:
/Series/Sports/NBA Games/Season 01/ - Separate folder per season
Common Patterns:
Series only:
/Series/NBA Games/episode.strm
Series + Season:
/Series/NBA Games/Season 01/S01E01.strm
Category + Series + Season:
/Series/Sports/NBA Games/Season 01/S01E01.strm
For VOD
Category Folder
- Example:
/Movies/Action/ - Groups by category/genre
Title Folder
- Example:
/Movies/Action/Movie Title/ - Individual folder per movie
Common Patterns:
No folders:
/Movies/Movie Title (2024).strm
Category only:
/Movies/Action/Movie Title (2024).strm
Category + Title:
/Movies/Action/Movie Title/Movie Title (2024).strm
📝 Filename Metadata
Customize what appears in the filename for better media server recognition:
Year
- Format:
Title (2024) - Source: Release date from provider or TMDB
- Recommended: ✅ Yes - helps media server matching
TMDB ID
- Format:
Title [tmdb-12345]orTitle {tmdb-12345} - Source: TMDB integration (must be configured)
- Recommended: ✅ Yes - ensures correct metadata matching
Resolution (Series only)
- Format:
S01E01 - 1080p - Source: Detected from stream
- Recommended: ⚠️ Optional - not all streams have resolution info
Examples
Series with Year + TMDB ID:
/Series/NBA Games/Season 01/S01E01 - Game 1 (2024) [tmdb-123456].strm
VOD with Year + TMDB ID (curly brackets):
/Movies/Action/The Matrix (1999) {tmdb-603}.strm
🔧 Advanced Settings
TMDB ID Format
Square Brackets (Default)
- Format:
[tmdb-12345] - Better for Plex
Curly Brackets
- Format:
{tmdb-12345} - Better for Jellyfin
Replace Character
Replace special characters in filenames with:
- Space (default)
- Underscore
_ - Dash
- - Nothing (remove)
Name Filtering
Remove unwanted text from folder/file names:
Examples:
DE •- Remove "DE • " prefixEN |- Remove "EN |" prefix[4K]- Remove "[4K]" tag★- Remove star emoji
Use Case: Cleaning up provider-added prefixes/suffixes
🎬 Media Server Setup
Plex Configuration
Add Library
- Settings → Libraries → Add Library
- Select library type:
- TV Shows for Series
- Movies for VOD
- Add folders: Point to your sync location
- Advanced → Scanner:
- Use Plex Series Scanner for TV
- Use Plex Movie Scanner for Movies
- Advanced → Agent:
- Select TheTVDB or TMDB for TV
- Select The Movie Database for Movies
Recommended Settings
- ✅ Enable "Update my library automatically"
- ✅ Enable "Scan my library periodically"
- ⚠️ Disable "Empty trash automatically" (until stable)
Troubleshooting
Content not appearing?
- Force scan library
- Check file permissions
- Verify .strm file contents (should be URL)
- Check Plex logs for errors
Wrong metadata?
- Use TMDB IDs in filenames
- Fix series/episode naming format
- Manually match in Plex
Jellyfin Configuration
Add Library
- Dashboard → Libraries → Add Library
- Select content type:
- Shows for Series
- Movies for VOD
- Add folder: Your sync location
- Metadata downloaders:
- Enable TheMovieDb
- Enable TheTVDB (for Series)
- Save
Recommended Settings
- Metadata language: Your preference
- Country: Your country
- ✅ Save metadata into media folder
- ✅ Enable "Monitor library"
Emby Configuration
Add Library
- Settings → Library → Add Library
- Select type: TV Shows or Movies
- Add folder path
- Configure metadata providers (TMDB, TheTVDB)
- Save
📂 Sync Location Requirements
Path Requirements
Must be:
- ✅ Absolute path (e.g.,
/media/Series) - ✅ Writable by m3u-editor container
- ✅ Accessible by media server
Should not be:
- ❌ Relative path (e.g.,
~/Series) - ❌ URL or remote path
- ❌ Temporary directory
Docker Volume Mapping
Mount the sync location in both containers:
docker-compose.yml:
services:
m3u-editor:
volumes:
- ./data:/var/www/config
- /path/to/media/Series:/media/Series # <-- Add this
- /path/to/media/Movies:/media/Movies # <-- Add this
jellyfin: # or plex/emby
volumes:
- /path/to/media/Series:/media/Series # <-- Same path
- /path/to/media/Movies:/media/Movies # <-- Same path
Permissions
# Ensure m3u-editor can write
chown -R 1000:1000 /path/to/media/Series
# Or make world-writable (less secure)
chmod -R 777 /path/to/media/Series
🔄 Syncing Process
Automatic Sync
When enabled on Playlist:
- Automatically creates/updates .strm files after playlist sync
- Removes .strm files for deleted episodes/VOD
When enabled on Series/VOD:
- Syncs on save
- Syncs when fetching metadata
Manual Sync
Per Series:
- Edit Series
- Click Sync .strm Files button
- Wait for completion notification
Per Playlist:
- Edit Playlist
- Enable "Auto sync .strm files" in VOD/Series settings
- Click Sync Now
Bulk Sync
# Sync all Series
docker exec -it m3u-editor php artisan app:sync-series-strm-files
# Sync all VOD
docker exec -it m3u-editor php artisan app:sync-vod-strm-files
🎨 Filename Examples
Series Examples
Minimal (Series name only):
/Series/NBA 2024/S01E01 - Lakers vs Celtics.strm
With Year:
/Series/NBA 2024/S01E01 - Lakers vs Celtics (2024).strm
With TMDB ID:
/Series/NBA 2024/S01E01 - Lakers vs Celtics [tmdb-123456].strm
Full Metadata:
/Series/Sports/NBA 2024/Season 01/S01E01 - Lakers vs Celtics (2024) [tmdb-123456].strm
VOD Examples
Minimal:
/Movies/The Matrix.strm
With Year:
/Movies/The Matrix (1999).strm
With TMDB ID:
/Movies/The Matrix (1999) [tmdb-603].strm
In Folders:
/Movies/Sci-Fi/The Matrix/The Matrix (1999) [tmdb-603].strm
🔍 Troubleshooting
Files Not Created
Check:
- .strm generation enabled in Settings?
- Sync location exists and is writable?
- Volume mounted in docker-compose?
- Check logs:
/var/www/config/logs/laravel.log
# Test write permission
docker exec -it m3u-editor touch /media/Series/test.txt
docker exec -it m3u-editor rm /media/Series/test.txt
Files Created but Empty
Verify:
# Check file contents
cat /path/to/media/Series/Show/S01E01.strm
# Should contain: http://your-ip:36400/stream/episode/12345
Media Server Not Detecting
Plex/Jellyfin/Emby:
- Verify library path matches sync location exactly
- Force library scan
- Check file permissions (readable by media server)
- Ensure .strm extension is recognized
Wrong Metadata
Solutions:
- Enable TMDB integration in Settings → Integrations
- Include TMDB ID in filename
- Use correct naming format for media server
- Manually fix match in media server
Files Not Updating
When content changes:
- Re-sync the playlist
- Or manually sync Series/VOD
- Trigger media server library scan
💡 Best Practices
For Best Results
✅ Use TMDB Integration
- Get free API key
- Enable TMDB ID in filenames
- Ensures perfect metadata matching
✅ Include Year in Filename
- Helps distinguish remakes/reboots
- Improves media server matching
✅ Use Consistent Path Structure
- Decide on folder structure early
- Stick with it across all content
✅ Test with One Series First
- Verify paths work
- Check media server detection
- Then enable for all content
Recommended Settings
For Plex:
- Path: Category → Series → Season
- Filename: Year + TMDB ID (square brackets)
- Format:
Show Name (2024) [tmdb-12345]
For Jellyfin:
- Path: Series → Season
- Filename: Year + TMDB ID (curly brackets)
- Format:
Show Name (2024) {tmdb-12345}
For Emby:
- Similar to Plex settings
- Square brackets work well
🔗 Stream URLs
URL Format
.strm files contain:
http://your-ip:36400/stream/episode/12345
URL Features
- Authentication: Uses playlist credentials
- Failover: Automatic failover support
- Proxy: Goes through m3u-proxy if enabled
- Transcoding: Uses profile if configured on playlist
Direct URLs vs Proxied
Direct (no proxy):
http://your-ip:36400/stream/episode/12345?proxy=false
Proxied (default when proxy enabled):
http://your-ip:36400/stream/episode/12345?proxy=true
📊 Monitoring
Check Sync Status
- View notifications for sync results
- Check series/VOD edit page for last sync time
- Review logs for errors
Verify File Count
# Count .strm files
find /path/to/media/Series -name "*.strm" | wc -l
# List recent files
find /path/to/media/Series -name "*.strm" -mtime -1
🆘 Getting Help
- 💬 Discord
- 🐛 GitHub Issues