Comments (5)
检查了代码,用postman模拟程序的调用
GET https://emby.local/emby/Users/5528e2df63fe43f3b7f35eb15a4ae75a/Items?format=json&recursive=true&includeItemTypes=Movie,Episode&fields=["Path", "ParentId", "Overview", "PremiereDate", "DateCreated"]&sortBy=DateCreated&sortOrder=Descending&limit=10&X-Emby-Token=xxxxxxx
返回的数据中,有的有RunTimeTicks字段,有的没有,可否优化一下,get_latest 方法过滤有这个字段的剧集或电影?如果过滤后为空数组,通过增大limit数量或分页参数(不清楚是否支持分页)再获取一遍再过滤?
{
"Items": [
{
"Name": "EP14:",
"ServerId": "d35155f44bdc438c858684b4ca364190",
"Id": "150279",
"IndexNumber": 14,
"ParentIndexNumber": 7,
"IsFolder": false,
"Type": "Episode",
"ParentBackdropItemId": "144260",
"ParentBackdropImageTags": [
"991326a1c6e242a29cfbbf23132a2a86"
],
"UserData": {
"PlaybackPositionTicks": 0,
"PlayCount": 0,
"IsFavorite": false,
"Played": false
},
"SeriesName": "向往的生活",
"SeriesId": "144260",
"SeasonId": "144342",
"SeriesPrimaryImageTag": "363d419c47240fabd5b1d5ad54202091",
"SeasonName": "季 7",
"ImageTags": {},
"BackdropImageTags": [],
"LocationType": "Virtual",
"MediaType": "Video"
},
{
"Name": "EP13:",
"ServerId": "d35155f44bdc438c858684b4ca364190",
"Id": "150278",
"IndexNumber": 13,
"ParentIndexNumber": 7,
"IsFolder": false,
"Type": "Episode",
"ParentBackdropItemId": "144260",
"ParentBackdropImageTags": [
"991326a1c6e242a29cfbbf23132a2a86"
],
"UserData": {
"PlaybackPositionTicks": 0,
"PlayCount": 0,
"IsFavorite": false,
"Played": false
},
"SeriesName": "向往的生活",
"SeriesId": "144260",
"SeasonId": "144342",
"SeriesPrimaryImageTag": "363d419c47240fabd5b1d5ad54202091",
"SeasonName": "季 7",
"ImageTags": {},
"BackdropImageTags": [],
"LocationType": "Virtual",
"MediaType": "Video"
},
{
"Name": "EP12:",
"ServerId": "d35155f44bdc438c858684b4ca364190",
"Id": "150277",
"IndexNumber": 12,
"ParentIndexNumber": 7,
"IsFolder": false,
"Type": "Episode",
"ParentBackdropItemId": "144260",
"ParentBackdropImageTags": [
"991326a1c6e242a29cfbbf23132a2a86"
],
"UserData": {
"PlaybackPositionTicks": 0,
"PlayCount": 0,
"IsFavorite": false,
"Played": false
},
"SeriesName": "向往的生活",
"SeriesId": "144260",
"SeasonId": "144342",
"SeriesPrimaryImageTag": "363d419c47240fabd5b1d5ad54202091",
"SeasonName": "季 7",
"ImageTags": {},
"BackdropImageTags": [],
"LocationType": "Virtual",
"MediaType": "Video"
},
{
"Name": "EP11:",
"ServerId": "d35155f44bdc438c858684b4ca364190",
"Id": "150276",
"IndexNumber": 11,
"ParentIndexNumber": 7,
"IsFolder": false,
"Type": "Episode",
"ParentBackdropItemId": "144260",
"ParentBackdropImageTags": [
"991326a1c6e242a29cfbbf23132a2a86"
],
"UserData": {
"PlaybackPositionTicks": 0,
"PlayCount": 0,
"IsFavorite": false,
"Played": false
},
"SeriesName": "向往的生活",
"SeriesId": "144260",
"SeasonId": "144342",
"SeriesPrimaryImageTag": "363d419c47240fabd5b1d5ad54202091",
"SeasonName": "季 7",
"ImageTags": {},
"BackdropImageTags": [],
"LocationType": "Virtual",
"MediaType": "Video"
},
{
"Name": "TBA",
"ServerId": "d35155f44bdc438c858684b4ca364190",
"Id": "150275",
"IndexNumber": 10,
"ParentIndexNumber": 1,
"IsFolder": false,
"Type": "Episode",
"UserData": {
"PlaybackPositionTicks": 0,
"PlayCount": 0,
"IsFavorite": false,
"Played": false
},
"SeriesName": "Love Allways",
"SeriesId": "93860",
"SeasonId": "144266",
"SeriesPrimaryImageTag": "9ccc3d1181b931452bb0da88e13a884b",
"SeasonName": "季 1",
"ImageTags": {},
"BackdropImageTags": [],
"LocationType": "Virtual",
"MediaType": "Video"
},
{
"Name": "TBA",
"ServerId": "d35155f44bdc438c858684b4ca364190",
"Id": "150274",
"IndexNumber": 9,
"ParentIndexNumber": 1,
"IsFolder": false,
"Type": "Episode",
"UserData": {
"PlaybackPositionTicks": 0,
"PlayCount": 0,
"IsFavorite": false,
"Played": false
},
"SeriesName": "Love Allways",
"SeriesId": "93860",
"SeasonId": "144266",
"SeriesPrimaryImageTag": "9ccc3d1181b931452bb0da88e13a884b",
"SeasonName": "季 1",
"ImageTags": {},
"BackdropImageTags": [],
"LocationType": "Virtual",
"MediaType": "Video"
},
{
"Name": "TBA",
"ServerId": "d35155f44bdc438c858684b4ca364190",
"Id": "150273",
"IndexNumber": 8,
"ParentIndexNumber": 1,
"IsFolder": false,
"Type": "Episode",
"UserData": {
"PlaybackPositionTicks": 0,
"PlayCount": 0,
"IsFavorite": false,
"Played": false
},
"SeriesName": "Love Allways",
"SeriesId": "93860",
"SeasonId": "144266",
"SeriesPrimaryImageTag": "9ccc3d1181b931452bb0da88e13a884b",
"SeasonName": "季 1",
"ImageTags": {},
"BackdropImageTags": [],
"LocationType": "Virtual",
"MediaType": "Video"
},
{
"Name": "Tradition of Superstition",
"ServerId": "d35155f44bdc438c858684b4ca364190",
"Id": "150253",
"IndexNumber": 12,
"ParentIndexNumber": 19,
"IsFolder": false,
"Type": "Episode",
"ParentLogoItemId": "90660",
"ParentBackdropItemId": "90660",
"ParentBackdropImageTags": [
"dbd1b3547c5a461f76897dff63c9c700",
"ed648740a25c88843b611940538d32d7"
],
"UserData": {
"PlaybackPositionTicks": 0,
"PlayCount": 0,
"IsFavorite": false,
"Played": false
},
"SeriesName": "恶海捕蟹记",
"SeriesId": "90660",
"SeasonId": "90665",
"SeriesPrimaryImageTag": "8e6adf0c9804c277f743e192cf520ccb",
"SeasonName": "季 19",
"ImageTags": {},
"BackdropImageTags": [],
"ParentLogoImageTag": "8a247007b653697d59250fafc27e0b31",
"ParentThumbItemId": "90660",
"ParentThumbImageTag": "bb9eceb455c9cd0f453e40efb393e2ca",
"LocationType": "Virtual",
"MediaType": "Video"
},
{
"Name": "顾九思拒绝太后赐婚",
"ServerId": "d35155f44bdc438c858684b4ca364190",
"Id": "144732",
"RunTimeTicks": 27708050000,
"IndexNumber": 30,
"ParentIndexNumber": 1,
"IsFolder": false,
"Type": "Episode",
"ParentLogoItemId": "144016",
"ParentBackdropItemId": "144016",
"ParentBackdropImageTags": [
"c115adfb9582460ff3ae2cf934db9b1a"
],
"UserData": {
"PlaybackPositionTicks": 0,
"PlayCount": 0,
"IsFavorite": false,
"Played": false
},
"SeriesName": "长风渡",
"SeriesId": "144016",
"SeasonId": "144046",
"SeriesPrimaryImageTag": "05ce3a02578d44096d19b172ef8ab3b7",
"SeasonName": "季 1",
"ImageTags": {},
"BackdropImageTags": [],
"ParentLogoImageTag": "59d9d989dfc77fab323d91b424e9bcd0",
"MediaType": "Video"
},
{
"Name": "顾九思又见洛子商",
"ServerId": "d35155f44bdc438c858684b4ca364190",
"Id": "144731",
"RunTimeTicks": 27718720000,
"IndexNumber": 29,
"ParentIndexNumber": 1,
"IsFolder": false,
"Type": "Episode",
"ParentLogoItemId": "144016",
"ParentBackdropItemId": "144016",
"ParentBackdropImageTags": [
"c115adfb9582460ff3ae2cf934db9b1a"
],
"UserData": {
"PlaybackPositionTicks": 0,
"PlayCount": 0,
"IsFavorite": false,
"Played": false
},
"SeriesName": "长风渡",
"SeriesId": "144016",
"SeasonId": "144046",
"SeriesPrimaryImageTag": "05ce3a02578d44096d19b172ef8ab3b7",
"SeasonName": "季 1",
"ImageTags": {},
"BackdropImageTags": [],
"ParentLogoImageTag": "59d9d989dfc77fab323d91b424e9bcd0",
"MediaType": "Video"
}
],
"TotalRecordCount": 18160
}
from embykeeper.
感谢您的详细的调试和信息, 帮助定位了问题的所在.
编写时由于我的测试服务器似乎所有视频都有 RunTimeTicks, 所以没有关注该问题.
已经推送了新版本: V2.2.9, 修复了该问题, 现在的策略是反复尝试获得最新视频, 检测是否有 RunTimeTicks:
async def get_latest(emby: Emby):
while True:
items = await emby.get_items(["Movie", "Episode"], limit=10, sort="DateCreated", ascending=False)
i: Union[Movie, Episode]
for i in items:
yield i
async def play(obj: EmbyObject, time=10, progress=1000):
c: Connector = obj.connector
# 检查
totalticks = obj.object_dict.get("RunTimeTicks")
if not totalticks:
raise PlayError("无法获取视频长度")
...
若您使用 docker
部署, 请使用以下命令以更新:
docker pull embykeeper/embykeeper
感谢您对项目的贡献, 请您查收通过私有仓库形式发送的 Embykeeper 邀请码.
如果新版本仍然存在该问题, 请继续回复.
from embykeeper.
感谢修复,邀请已经过期了,很遗憾,拍大腿哈哈哈~
有几点想问的,先表明我是Python小白,写Java倒挺熟悉。但能勉强看出来,此处是通过添加While True 这种方式无限获取emby的媒体信息。
感觉挺奇怪的,如果一直获取不到RunTimeTicks,会不会导致频繁调用接口?(看到 While True 没有休眠机制就感觉挺害怕的)
另外,是不是通过 Python 比较 magic 的方式,yield 关键字+ asyncio.wait_for(watch(emby, time, progress, logger), max(time * 3, 180)) 超时来达到一个一个任务的执行,并且超时协程会被中断?
https://superfastpython.com/asyncio-wait_for/#How_to_Use_Asyncio_wait_for
from embykeeper.
感谢修复,邀请已经过期了,很遗憾,拍大腿哈哈哈~
我重发咯.
感觉挺奇怪的,如果一直获取不到RunTimeTicks,会不会导致频繁调用接口?(看到 While True 没有休眠机制就感觉挺害怕的)
我觉得你说的对. 我加了一些延时.
另外,是不是通过 Python 比较 magic 的方式,yield 关键字+ asyncio.wait_for(watch(emby, time, progress, logger), max(time * 3, 180)) 超时来达到一个一个任务的执行,并且超时协程会被中断?
Bingo. 确实是这样, 不限制视频个数,限制了超时.
from embykeeper.
长时间无回复,关闭该Issue.
from embykeeper.
Related Issues (20)
- 有些服的视频播放发生错误 HOT 6
- 数据库异常错误 HOT 4
- 播放保活被发现了,能改进机制吗 HOT 1
- 源码部署第一步就提示错误了 HOT 1
- 签到时间配置不生效 HOT 1
- 更新了版本发生了报错 HOT 1
- 使用自定义api出现问题 HOT 1
- 一直部署失败 HOT 1
- 由于概率设置导致不回答和不抢红包 HOT 6
- 终点站签到修复 HOT 2
- Pornemby更换了新的机器人
- [400 YOU_BLOCKED_USER] - You blocked this user (caused by "messages.SendMessage") HOT 1
- bot 没回应,购买了 prime 无法激活 HOT 1
- 请问永远出现风险急停,这是正常的吗 HOT 4
- TG登錄驗證 過不了 HOT 2
- 幫加個apop的簽到 我只會改這樣 HOT 1
- 成功分享邀请链接给三位用户,但用户登记状态未改变 HOT 1
- 源码构建后make systemd报错 HOT 2
- 通过爱发电赞助后依然是,服务 PRIME 认证错误: 未知的 service. HOT 3
- 登录异常,BadMsgNotification HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from embykeeper.