An attempt to create fuse filesystem to access Plex Media Server files as local files.
This project is in very early development.
Currently implemented:
- Listing of root directory
- Connecting to PMS via python-plexapi
- Listing of library types in root directory
- Listing library titles in library type sub-directory
- Listing titles from a library
- Listing of Movie files
- Report file size for media part
- Report accurate nlink for directories
- Memoize readdir and getattr calls
- Fix "/" in directory names
- Download movie files to cache, serve read operations from cache
- Add
-o cache_path
option - Test that Plex Media Server allows requesting file by range
- Use chunked read for file cache
- Listing of Show seasons
- Listing of Season episodes
- Listing of Episode files
- Downloading episode files
- Unicode normalize titles
- Support .plexmatch for Movies
- Support timestamps for Movies
- Support .plexmatch for Show directories
- Add movie timestamps to .plexmatch files
- Add timestamps to directories
- Add subtitle files for Movies
- Add subtitle files for Episodes
- Cache PlexAPI requests using requests-cache (
-o http_cache
) - Publish package to pypi
- Add docker volume driver
- Add cache management (max size?)
- Add cache purge option (special file?)
- Detect need to refresh cache (add event listener)
- Handling of "artist" library type
- Add "status" and "reload" control channels
- Python >= 3.11
- fuse, macfuse, osxfuse or fuse-t depending on your OS
- Install pipx
- Install
plex-fuse
:pipx install plex-fuse
- Check requirements and installation
- Create config.ini for
python-plexapi
- Mount the configured PMS somewhere, i.e
plex-server
:mkdir plex-server; plex-fuse plex-server -f
- Access the
plex-server
directory from another terminal umount
orfusermount -u
the directory to remove theplex-server
mount
Create Plex configuration file:
# ~/.config/plexapi/config.ini
[auth]
server_baseurl = http://127.0.0.1:32400
server_token = XBHSMSJSDJ763JSm