Doudarr是一个将豆瓣榜单/片单/豆列(以下统称豆瓣列表
)转换为Radarr列表的工具。它可以将任意豆瓣列表中的电影列表转换为Radarr列表,从而实现自动监控豆瓣列表中的电影,并自动下载。
使用Docker部署Doudarr: docker run -d --name doudarr -p 8000:8000 -v /path/to/cache:/app/cache kfstorm/doudarr:latest
。可配置的参数参见Doudar服务参数。
访问http://localhost:8000/collection/movie_weekly_best,测试是否能够获取到该豆瓣列表中的电影列表。(对应的豆瓣网页为https://m.douban.com/subject_collection/movie_weekly_best。)
进入Radarr,在设置 -> 列表
中新增一个列表,选择Advanced List
中的StevenLu Custom
,设置好参数后保存。一些常用参数:
电影 -> 发现
中查看。(右上角选项
里取消勾选包含Radarr推荐
,右上角过滤
里选择全部
。)Doudarr服务支持以环境变量的方式配置服务参数。参数列表如下:
环境变量 | 默认值 | 说明 |
---|---|---|
DOUDARR_CACHE_BASE_DIR |
cache |
缓存路径。默认值为相对路径,也可以填写绝对路径。 |
DOUDARR_DOUBAN_API_REQUEST_DELAY_MAX_SECONDS |
1 |
请求豆瓣API时的最大延迟(秒)。两次请求之间的延迟是随机的,这里配置的是最大值。 |
DOUDARR_LIST_CACHE_TTL_SECONDS |
86400 |
列表缓存的TTL(秒)。列表缓存会在一段时间后过期,过期后会重新抓取。如果豆瓣列表的条目有更新,重新抓取后会拿到最新的条目。 |
DOUDARR_IMDB_REQUEST_DELAY_MAX_SECONDS |
30 |
抓取IMDb信息时的最大延迟(秒)。两次请求之间的延迟是随机的,这里配置的是最大值。 |
DOUDARR_IMDB_CACHE_TTL_ID_NOT_FOUND_SECONDS |
86400 |
IMDb ID未找到时的缓存TTL(秒)。部分豆瓣条目没有IMDb ID(可能是暂时的),没有找到时会缓存一段时间,避免重复查询。TTL到期后会再次查询。 |
DOUDARR_PROXY_ADDRESS |
无 | 代理地址,所有HTTP请求将通过代理转发。 |
DOUDARR_BOOTSTRAP_INTERVAL_SECONDS |
86400 |
缓存预热的时间间隔(秒)。缓存预热会在后台定期执行,用于抓取IMDb信息并缓存,加快后续查询速度。设置间隔可以避免短时间内抓取太多信息,导致访问受限。 |
DOUDARR_BOOTSTRAP_LIST_INTERVAL_SECONDS |
30 |
缓存预热时抓取两个列表之间的时间间隔(秒)。设置间隔可以避免短时间内抓取太多列表,导致访问受限。 |
DOUDARR_BOOTSTRAP_LISTS_MAX |
100 |
缓存预热时抓取的列表最大数量。每次缓存预热只会抓取部分列表,这个值越大,抓取的列表数量越多,IMDb信息的预热越充分。 |
DOUDARR_DOUBAN_RATE_LIMIT_DELAY_SECONDS |
3600 |
豆瓣API的速率限制延迟(秒)。当遇到豆瓣API返回访问限制时,在配置的时间范围内不再请求豆瓣API,避免访问受限更严重。 |
DOUDARR_APIKEY |
无 | API密钥。API密钥用于对外提供访问权限,部分API只有在提供了正确的API密钥时才能访问,例如/sync API。 |
DOUDARR_SYNC_IMDB_CACHE_INTERVAL_SECONDS |
3600 |
同步IMDb缓存到其他Doudarr实例的时间间隔(秒)。同步IMDb缓存会定期将缓存同步到其他Doudarr实例上,以便多个Doudarr实例之间共享IMDb缓存。 |
DOUDARR_SYNC_IMDB_CACHE_TO |
[] |
同步IMDb缓存到其他Doudarr实例的URL列表。同步IMDb缓存会定期将缓存同步到其他Doudarr实例上,以便多个Doudarr实例之间共享IMDb缓存。该参数可以包括多个URL,用于同步到多个Doudarr实例。参数示例:["http://doudarr-another-1:8000/sync?apikey=another-apikey-1", "http://doudarr-another-2:8000/sync?apikey=another-apikey-2"] 。注意这里的apikey需要填写对应实例的apikey,而不是自己的。该参数的值较为复杂,配置环境变量时注意转义。 |
DOUDARR_COOKIE_DOUBAN_COM_DBCL2 |
无 | 豆瓣网站的cookie中key为dbcl2 cookie的值。如果想让Doudarr以登录用户的身份去访问豆瓣的接口,请配置该参数。 |
豆瓣列表的链接有两种格式,请根据情况选择对应的Doudarr链接。
豆瓣列表链接格式 | Doudarr链接格式 | Doudarr链接示例 |
---|---|---|
https://m.douban.com/subject_collection/<豆瓣列表ID> |
http://<Doudarr服务地址>/collection/<豆瓣列表ID> |
http://localhost:8000/collection/movie_weekly_best |
https://www.douban.com/doulist/<豆瓣列表ID>/ |
http://<Doudarr服务地址>/doulist/<豆瓣列表ID> |
http://localhost:8000/doulist/43556565 |
可以通过额外的query参数来控制返回的内容。
参数 | 说明 | 示例 |
---|---|---|
min_rating |
最低评分要求。只有不低于指定评分的电影才会被返回。 | http://localhost:8000/collection/movie_weekly_best?min_rating=8 |
/app/cache
目录映射到宿主机上,以免后续容器重建或升级时丢失缓存数据。为了方便大家使用,可以使用公共的Doudarr服务:https://doudarr.azurewebsites.net。公共服务的IMDb ID缓存可能更全面,可以更快加载出豆瓣列表中的电影。
请注意,这是一个公共服务,不保证稳定性和可用性。如果有条件,建议自行部署Doudarr。
如何找到喜欢的豆瓣列表?
书影音 -> 电影 -> 豆瓣榜单
,可以浏览所有的榜单/片单(也叫豆列)。选择一个想要监控的豆瓣列表,点击进入,然后打开分享菜单,选择复制链接
,即可获得该豆瓣列表的URL。site:douban.com/subject_collection
或site:douban.com/doulist
。下面是我想到的可能会做的功能,但不一定会实现。欢迎提出新的功能需求。