joserick/phplex

此包已被弃用,不再维护。未建议替代包。

一个用于与Plex(https://www.plex.tv)HTTP控制API交互的PHP库。(从https://github.com/joserick/phplex fork而来)

0.0.3.2 2019-05-01 21:57 UTC

This package is auto-updated.

Last update: 2023-07-09 23:37:50 UTC


README

警告:此项目不再处于积极开发中,被视为已弃用。不会提供更新或额外支持。

弃用原因

由于时间和资源限制,此项目已被弃用。不幸的是,我再也没有时间维护它,并给予它应有的积极开发。

此外,自该项目创建以来,已经出现了新的替代方案和更先进的解决方案,更有效地满足了当前需求。我建议探索以下替代方案,它们提供了更多功能和改进

替代方案

  • Plex API:此替代方案拥有活跃的社区和持续的开发。它提供了更高级的功能和更直观的命令。

我们感谢至今为止对这个项目表现出的兴趣和支持。如果您有任何疑问或担忧,请随时联系我们,但请注意,您可能不会收到答案或解决方案。

PHPlex

PHPlex 是一个用于通过 Plex 管理服务器API-HTTP 进行交互的库。

要求

  • PHP >= 5.6
  • Curl PHP 扩展
  • XML PHP 扩展
  • JSON PHP 扩展

功能

允许访问您的Plex媒体库,以便您可以通过多种便捷的方式检索您的节目、季、剧集、电影、艺术家、专辑和曲目。

具有简单的播放和导航命令,还有一个播放剧集、电影和曲目的界面。

不提供的功能

尚未实现照片功能。

播放仅实现于剧集、电影和曲目级别。计划是实现将季或专辑传递给应用程序控制器,并播放整个内容。

尚未为项目列表实现分页。

安装

使用包管理器 Composer 安装 PHPlex。

composer require joserick/phplex

文档

您可以在 Github Wiki 中查看更多PHPlex功能。

您还可以在 文档 中查看所有类、方法和属性。

获取PlexServer实例

// include composer autoload
require 'vendor/autoload.php';

// import the Joserick Plex
use Joserick\PHPlex\Plex;

// build plex object with you account data.
$plex = new Plex('username', 'password', 'address');

// to finally create server instances
$server = $plex->getServer();

如果您想添加多个服务器,并且需要更具体的数据。

$servers = array(
	'my_server' => array( // Name with which you want to identify the configuration of the server.
		'username' => 'username|email', // Username or email of the plex.tv account.
		'password' => 'password' // Password of the plex.tv account.
		'address' => '192.168.11.9', // Ip of the server, default localhost.
		'port' => '32401' // Ip port, default 32400.
		'token' => '********' // Connexion token, default phplex generate one.
	),
	// ...
);
$plex = new Plex();
$plex->registerServers($servers);
$server = $plex->getServer('my_server');

示例

示例 1:列出所有未观看的电影。

// First get a section of type movie.
$section = $server->getLibrary()->getSection('Movies');
$movies = $section->getUnwatched();
foreach ($movies as $movie){
	echo $movie->getTitle();
}

示例 2:列出连接到服务器的所有客户端。

$clients = $plex->getAllClients();
foreach ($clients as $client){
	echo $client->getName();
}
// Get a client specific.
$client_version = $plex->getClient('Chrome')->version;

示例 3:列出电影类型分区中的所有流派。

$section = $server->getLibrary()->getSection('TV Shows')
foreach ($section->getGenres() as $genre){
	echo $genre->getName();
}

示例 4:列出标题中包含单词'Terminator'的分区中的所有电影。

$section = $server->getLibrary()->getSection('Movies');
foreach ($section->search('terminator') as $movie){
	echo $movie->getTitle();
}

示例 5:列出《老友记》最新一集的所有文件。

$last_episode = $server->getLibrary()->getSection('TV Shows')->get('Friends')->getEpisodes()[-1];
foreach ($last_episode->getMedia()->getFiles() as $file){
	echo $file->getPath();
}

示例 6:列出分区中每个项目的首字母列表

$alphabet = $server->getLibrary()->getSection('TV Shows')->getAlphabet();
foreach ($alphabet as $letter){
	echo $letter;
}

更新日志

请参阅更新日志获取最近更改的更多信息。

致谢

许可证

GNU公共许可证(GPLv3)。请参阅许可证文件获取更多信息。