dev-master
9999999-devA simple PHP library for interacting with the Plex (http://plexapp.com) HTTP Control API. (forked from https://github.com/bonvga/php-plex)
MIT
The Requires
- php >=5.3
by Chris Collins
plex
Wallogit.com
2017 © Pedro Peláez
A simple PHP library for interacting with the Plex (http://plexapp.com) HTTP Control API. (forked from https://github.com/bonvga/php-plex)
A simple PHP library for interacting with the Plex (http://plexapp.com) HTTP Control API., (*1)
php-curl simpleXML, (*2)
Allows access to your Plex library so that you can retrieve your shows, seasons, episodes, movies, artists, albums, and tracks in a number of convenient ways., (*3)
Has simple commands for playback and navigation and also an interface for playing episodes, movies, and tracks., (*4)
Photos have not been implemented yet., (*5)
Playback is only implemented at the episode, movies, and track level. The plan is to implement passing a season or album to the application controller and have it play through the entire thing., (*6)
Paging has not been implemented for lists of items., (*7)
To install php-plex with Composer just add the following to your 'composer.json' file:, (*8)
{
require: {
"bonvga/php-flex": "*",
...
}
}
Set Up, (*9)
require_once('path/to/Plex.php');
$servers = array(
'shepherd' => array(
'address' => '192.168.11.9'
)
);
$plex = new Plex();
$plex->registerServers($servers);
$server = $plex->getServer('shepherd');
$client = $plex->getClient('zoe');
Get items at the library level, (*10)
// On deck and recently added items
$server->getLibrary()->getOnDeckItems();
$server->getLibrary()->getRecentlyAddedItems();
// Sections
$server->getLibrary()->getSections();
$server->getLibrary()->getSection('Movies');
$server->getLibrary()->getSection('TV Shows');
$server->getLibrary()->getSection('Music');
Movies, (*11)
// Lists of movies
$section->getAllMovies();
$section->getUnwatchedMovies();
$section->getRecentlyReleasedMovies();
$section->getRecentlyAddedMovies();
$section->getRecentlyViewedMovies();
$section->getOnDeckMovies();
$section->getMoviesByYear(1983);
$section->getMoviesByDecade(1980);
$section->getMoviesByContentRating('R');
$section->getMoviesByResolution('1080');
$section->getMoviesByFirstCharacter('Q');
// Single movies
// Exact title
$section->getMovie('Heavy Metal in Baghdad');
// Rating key
$section->getMovie(83696);
// Key
$section->getMovie('/library/metadata/83696');
// Collections
$section->getCollections();
$section->getMoviesByCollection(13206);
// Genres
$section->getGenres();
$section->getMoviesByGenre(1252);
// Directors
$section->getDirectors();
$section->getMoviesByDirector(357);
// Actors
$section->getActors();
$section->getMoviesByActor(3903);
// Search
$section->searchMovies('fly');
Shows, seasons, and episodes, (*12)
// Lists of shows
$section->getAllShows();
$section->getUnwatchedShows();
$section->getShowsByFirstCharacter('Q');
$section->getShowsByYear(1983);
$section->getShowsByContentRating('TV-MA');
// Single shows
// Exact title
$section->getShow('Firefly');
// Rating key
$section->getShow(46585);
// Key
$section->getShow('/library/metadata/46585');
// Lists of episodes
$section->getRecentlyAiredEpisodes();
$section->getRecentlyAddedEpisodes();
$section->getRecentlyViewedEpisodes();
$section->getOnDeckEpisodes();
// Single episodes
// Exact title
$section->getEpisode('Crucifixed');
// Rating key
$section->getEpisode(83780);
// Key
$section->getEpisode('/library/metadata/83780');
// Collections
$section->getCollections();
$section->getShowsByCollection(13205);
// Genres
$section->getGenres();
$section->getShowsByGenre(8196);
// Search
$section->searchShows('fly');
$section->searchEpisodes('fly');
// By show
$show = $showSection->getShow('Peep Show');
$seasons = $show->getSeasons();
$seasonByIndex = $show->getSeason(2);
$seasonByKey = $show->getSeason('/library/metadata/3112');
$seasonByExactTitleMatch = $show->getSeason('Season 2');
$episodes = $seasonByIndex->getEpisodes();
$episodeByIndex = $seasonByIndex->getEpisode(4);
$episodeByKey = $seasonByIndex->getEpisode('/library/metadata/3116');
$episodeByExactTitleMatch = $seasonByIndex->getEpisode('University Challenge');
Artists, albums, and tracks, (*13)
// Lists of artists
$section->getAllArtists();
// Single artists
// Exact title
$section->getArtist('Acrassicauda');
// Rating key
$section->getArtist(83757);
// Key
$section->getArtist('/library/metadata/83757');
// Collections
$section->getCollections()
$section->getArtistsByCollection(13206);
// Genres
$section->getGenres();
$section->getArtistsByGenre(11644);
// Albums
$section->getAllAlbums();
$section->getAlbumsByDecade(1980);
$section->getAlbumsByYear(1983);
$section->getRecentlyAddedAlbums();
// Single tracks
// Exact title
$section->getTrack('Can\'t Buy Me Love');
// Rating key
$section->getTrack(67962);
// Key
$section->getTrack('/library/metadata/67962');
// Search
$section->searchArtists('fly');
$section->searchTracks('fly');
// By artist
$artist = $artistSection->getArtist('Paolo Nutini');
$albums = $artist->getAlbums();
$albumByKey = $artist->getAlbum('/library/metadata/57718');
$albumByExactTitleMatch = $artist->getAlbum('These Streets');
$tracks = $albumByExactTitleMatch->getTracks();
$trackByIndex = $albumByExactTitleMatch->getTrack(3);
$trackByKey = $albumByExactTitleMatch->getTrack('/library/metadata/57726');
$trackByExactTitleMatch = $albumByExactTitleMatch->getTrack('Rewind');
Item Media Info, (*14)
$showSection = $library->getSection('TV Shows');
$episode = $showSection->getShow("The Simpsons")
->getSeason(4)
->getEpisode(12);
// Media Info
$media = $episode->getMedia();
$duration = $media->getDuration();
$bitrate = $media->getBitrate();
// File
$file = reset($media->getFiles());
$path = $file->getFile();
$size = $file->getSize();
Playback Controller, (*15)
$playback = $client->getPlaybackController(); $playback->play(); $playback->pause(); $playback->stop(); $playback->rewind(); $playback->fastForward(); $playback->stepForward(); $playback->bigStepForward(); $playback->stepBack(); $playback->bigStepBack(); $playback->skipNext(); $playback->skipPrevious();
Navigation Controller, (*16)
$navigation = $client->getNavigationController(); $navigation->moveUp(); $navigation->moveDown(); $navigation->moveLeft(); $navigation->moveRight() $navigation->pageUp(); $navigation->pageDown(); $navigation->nextLetter(); $navigation->previousLetter(); $navigation->select(); $navigation->back(); $navigation->contextMenu(); $navigation->toggleOSD();
Application Controller, (*17)
$application = $client->getApplicationController();
$episode = $section
->getShow('It\'s Always Sunny in Philadelphia')
->getSeason(5)
->getEpisode(4);
// Play episode from beginning
$application->playMedia($episode);
// Play epsiode from where it was last stopped
$application->playMedia($episode, $episode->getViewOffset());
// Set voume to half
$application->setVolume(50);
A simple PHP library for interacting with the Plex (http://plexapp.com) HTTP Control API. (forked from https://github.com/bonvga/php-plex)
MIT
plex