MisakaF 发表于 2022-2-12 17:34:06

Emby api 简单使用指北

本帖最后由 MisakaF 于 2022-2-12 17:33 编辑

板块貌似投错了,在这儿重新投一下=,=。

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

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

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

首先是前期准备工作:

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

向下翻,找到UserService一栏,展开,再找到Creates a user分支,这就是创建用户的API:https://tva4.sinaimg.cn/large/007dA9Dely8gz8ne4ucz5j31et0g9409.jpg

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

轻点Execute,向下翻找到Responses,提示返回200,说明创建成功。
https://tva4.sinaimg.cn/large/007dA9Dely8gz8nmmyq5pj31hc0gzmzo.jpg

再返回到网站的控制面板-用户,锵锵!https://tva4.sinaimg.cn/large/007dA9Dely8gz8nqlf6b3j31hc0ou41y.jpg

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

在上一步创建用户的操作中,提交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用户进入详细页面,可以看到转码已经关闭了。https://tva2.sinaimg.cn/large/007dA9Dely8gz8oidvu1bj318e0im0un.jpg

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

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

API调试页面-LibraryService-Starts a library scan无需任何参数直接执行即可。
https://tva2.sinaimg.cn/large/007dA9Dely8gz8or74vazj31hc0fvta9.jpg

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

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

自此,便转入了编程操作阶段,不是我该教的范畴了,可以去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肯定,动漫番剧自动更新并通知。
(群里快成mjj据点了=,=)
点我注册

小曲儿 发表于 2022-2-12 18:09:05

技术贴绑定
页: [1]
查看完整版本: Emby api 简单使用指北