yyotan 发表于 2023-12-3 17:10:56

Emby api简单使用指北

最近不知道为啥emby搭建突然火了起来,可能因为阿里云盘的原因大家资源都挺多吧,论坛里也一直有人在询问emby的api使用,作为一个已经趟了坑的人,就来给大家简单介绍介绍emby的api使用。

事先声明:本人纯小白自我摸索,教程一时心血来潮写的,若有漏洞错误之处还请尽数指出多多包涵=,=

目前emby的api主要在两个方面的使用,一是用户的管理,二是媒体库的管理

首先是前期准备工作:

进入你emby网站的控制台,在最左边一列中找到API密钥,创建一个API。
再翻到仪表盘最下方,点击api,即可进入API调试页面,此页面已经内置了你网站的API,任何操作都会直接应用到网站中,请谨慎操作。



向下翻,找到UserService一栏,展开,再找到Creates a user分支,这就是创建用户的API:

接下来,跟着我来通过API创建第一个用户:点击Try it out,会进入编辑模式,将Name后的字符"string"改为任何你愿意的用户名,例如"11111qqqqq"。

轻点Execute,向下翻找到Responses,提示返回200,说明创建成功。


再返回到网站的控制面板-用户,锵锵!

现在你已经会最基础的创建用户操作了,接下来让我们对这个用户的配置文件进行一些修改

在上一步创建用户的操作中,提交post后会返回一段Response body,里面有这个用户的所有配置信息,我们只需要提取出刚刚创建的用户的ID即可,具体提取操作可以使用python或任何编程语言来实现,不再赘述,详见最后示例代码。

现在我们已经通过一些方法获取了用户ID,回到API调试页面,向下翻,找到Updates a user policy分支,点击Try it out并在方框内输入用户ID:

接下来,稍微对用户配置做一点修改,比如最常见的关闭转码:在方框内找到
"IsAdministrator": true,"IsDisabled": true,"EnableAudioPlaybackTranscoding": true,"EnableVideoPlaybackTranscoding": true,true全部更改为false,执行!
返回204而不是200,不用怕,一样是成功的

回到控制面板-用户,点击11111qqqqq用户进入详细页面,可以看到转码已经关闭了。

在Updates a user policy和Updates a user configuration分支中还有很多配置可以修改,剩下的就由mjj自己去探索了,论坛人均6级应该能看得懂的吧!

媒体库操作简单介绍一个刷新媒体库

API调试页面-LibraryService-Starts a library scan无需任何参数直接执行即可。


接下来,重中之重!通过python来实现操作API,借此你就可以在python中添加tg机器人来通过tg机器人管理emby。

在API调试界面中执行每条命令时,下方会出现对应的CURL命令,比如创建用户时:
复制这条curl命令,转到这个网站,将curl命令粘贴到左侧,右侧便会出现相应的python代码,复制到python编辑器中,直接运行即可实现相同效果。


自此,便转入了编程操作阶段,不是我该教的范畴了,可以去b站自学,掌握一门编程语言还是很有必要的。

附上我emby公益服tg机器人注册源码中的部分源码,剩下的是机器人操作相关。
    name = "你要注册的用户名"    headers = {      'accept': 'application/json',      'Content-Type': 'application/json',    }    params = (                ('api_key', '***api***'),            )    data = '{"Name":"'+name+'","HasPassword":true}'    response = requests.post('***你的网址***/emby/Users/New', headers=headers, params=params, data=data)    if(response != ''):      id1=re.findall(r'"(.*?)"',response.text)      id=id1      headers1 = {                        'accept': '*/*',                        'Content-Type': 'application/json',                  }      params1 = (                  ('api_key', '***api***'),                )      data1 = '{"IsAdministrator":false,"IsHidden":true,"IsHiddenRemotely":true,"IsDisabled":false,"EnableRemoteControlOfOtherUsers":false,"EnableSharedDeviceControl":false,"EnableRemoteAccess":true,"EnableLiveTvManagement":false,"EnableLiveTvAccess":true,"EnableMediaPlayback":true,"EnableAudioPlaybackTranscoding":false,"EnableVideoPlaybackTranscoding":false,"EnablePlaybackRemuxing":false,"EnableContentDeletion":false,"EnableContentDownloading":false,"EnableSubtitleDownloading":false,"EnableSubtitleManagement":false,"EnableSyncTranscoding":false,"EnableMediaConversion":false,"EnableAllDevices":true}'      requests.post('***你的网址***/emby/Users/'+id+'/Policy', headers=headers1, params=params1, data=data1)
这里面的用户配置文件关闭转码,下载,其他无关权限,仅能进行播放

ps:如果你要单独刷新某个媒体库,浏览器内按f12,点击网络,刷新某个媒体库,找到右侧抓到的包,右键-复制-以cURL(bash)格式复制,再转到刚刚那个代码转换网站转换即可。

最后稍微宣传下我自己的公益服,可直连,速度经多位mjj肯定。
尚有150T+资源扫盘中,动漫番剧自动更新并通知。
点我注册

灌水王 发表于 2023-12-3 17:11:26

MARKMARKMARKMARK

灌水王 发表于 2023-12-3 17:11:33

从开头往下看顿时觉得这应该是开服巨佬的操作吧?果不其然,立刻注册

trynews 发表于 2023-12-3 17:11:55

资源编码格式问题哦,用客户端播放即可解决这个问题

灌水王 发表于 2023-12-3 17:12:40

这种情况都是web端不支持编码格式导致的,用客户端就好了https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif

灌水王 发表于 2023-12-3 17:13:22

太强了大佬带带我

灌水王 发表于 2023-12-3 17:14:12

MARK,以后可能会用到。

灌水王 发表于 2023-12-3 17:14:18

已注册
页: [1]
查看完整版本: Emby api简单使用指北