Libitum / jellyfin-plugin-douban

Douban metadata provider for Jellyfin
MIT License
614 stars 76 forks source link

豆瓣网站好像把你的插件封了 #29

Open yyf127 opened 4 years ago

yyf127 commented 4 years ago

豆瓣网站好像把你的插件封了,手动识别全部没出现,搜刮也不行了

Libitum commented 4 years ago

@yyf127 我也发现了,我先查一下具体原因哈,多谢反馈!

Libitum commented 4 years ago

@yyf127 我也发现了,我先查一下具体原因哈,多谢反馈!

https://us.v2ex.com/t/699393 万恶的豆瓣,貌似把公开的 key 全封了... 看到只能考虑爬虫的方法了....

yyf127 commented 4 years ago

@Libitum 豆瓣这么不厚道,看来还是先用tmdb了

chengzyzy commented 4 years ago

https://frodo.douban.com/api/v2/movie/1294833?apiKey=054022eaeae0b00e0fc068c0c0a2102a 有新的key 应该可以使用了

Libitum commented 4 years ago

@CatCccC 赞!非常感谢!配置里是可以直接修改 key 的。如果不介意的话,我更新到代码的 default 里可以么?

chengzyzy commented 4 years ago

@Libitum 直接更新吧 我也是网上才发现的

Libitum commented 4 years ago

@Libitum 直接更新吧 我也是网上才发现的

谢谢!

yyf127 commented 4 years ago

https://frodo.douban.com/api/v2/movie/1294833?apiKey=054022eaeae0b00e0fc068c0c0a2102a 有新的key 应该可以使用了

好的,非常感谢

chengzyzy commented 4 years ago

@Libitum
image image 换了新的key ... 搜索还是出现问题 没有返回结果

Libitum commented 4 years ago

@CatCccC 我也发现了,正在查是什么原因

AlwaysHacking commented 4 years ago

我这里在重构抓取的方式(用客户端的API),但是测试时遇到了问题,私聊一下? @Libitum wechat:liu_hai_tian

jxon commented 4 years ago

可以参考这个油猴脚本,使用了网页手机版的数据源,可以正常获取数据。 https://github.com/tofuliang/DOUBAN-Movie-info-for-RARBG/

Libitum commented 4 years ago

我这里在重构抓取的方式(用客户端的API),但是测试时遇到了问题,私聊一下? @Libitum wechat:liu_hai_tian

抱歉之前有点忙刚看到,我加你哈~

Libitum commented 4 years ago

可以参考这个油猴脚本,使用了网页手机版的数据源,可以正常获取数据。 https://github.com/tofuliang/DOUBAN-Movie-info-for-RARBG/

谢谢!我参考一下

xmt328 commented 3 years ago

刚入jellyfin的坑,目前改HOSTS用的TMDB,但是tmdb的评分太不可靠了 请问下这个插件现在还能用么,看网上说api都已经不能用了

Libitum commented 3 years ago

@xmt328 抱歉最近年底比较忙,多谢 @HaitianLiu 实现了新的方法,还有一些小的 fix,我争取尽快 release 出来哈

chengli0946 commented 3 years ago

@xmt328 抱歉最近年底比较忙,多谢 @HaitianLiu 实现了新的方法,还有一些小的 fix,我争取尽快 release 出来哈

期待您的更新。辛苦!!

425369918 commented 3 years ago

坐等大佬更新噢

daoshuailx commented 3 years ago

期待大佬更新.

dingyx99 commented 3 years ago

试了下直接从latest构建了插件,在抓取了几个之后就返回 Bad Request 了

Libitum commented 3 years ago

@dingyx99 是这样的,现在豆瓣反爬虫封的特别猛,都随机 sleep 10s 了也不行。这也是为啥我没发布出来的原因。 我在考虑用登录的方式抓,不过也是怕被封。

dingyx99 commented 3 years ago

@dingyx99 是这样的,现在豆瓣反爬虫封的特别猛,都随机 sleep 10s 了也不行。这也是为啥我没发布出来的原因。 我在考虑用登录的方式抓,不过也是怕被封。

是不是可以考虑一下多弄几个UA,随机换着来?他总不会限制多设备未登录搜索频次吧。

Libitum commented 3 years ago

@dingyx99 是这样的,现在豆瓣反爬虫封的特别猛,都随机 sleep 10s 了也不行。这也是为啥我没发布出来的原因。 我在考虑用登录的方式抓,不过也是怕被封。

是不是可以考虑一下多弄几个UA,随机换着来?他总不会限制多设备未登录搜索频次吧。

正在尝试这么做。只不过现在得用手机的 UA。请问你知道有什么生成手机 UA 的方法么? 不过我之前找到一个不强制手机 UA 的 api,也许更方便一些

dingyx99 commented 3 years ago

@dingyx99 是这样的,现在豆瓣反爬虫封的特别猛,都随机 sleep 10s 了也不行。这也是为啥我没发布出来的原因。 我在考虑用登录的方式抓,不过也是怕被封。

是不是可以考虑一下多弄几个UA,随机换着来?他总不会限制多设备未登录搜索频次吧。

正在尝试这么做。只不过现在得用手机的 UA。请问你知道有什么生成手机 UA 的方法么? 不过我之前找到一个不强制手机 UA 的 api,也许更方便一些

我看了一下,他UA的格式是这样的

api-client/1 com.douban.frodo/7.0.1(204) Android/29 product/aosp_chiron vendor/Xiaomi model/Mi MIX 2  rom/miui6  network/wifi  udid/879f2335e3c6c5161b***be5b8d9  platform/mobile nd/1

占位符换掉之后如下 api-client/1 com.douban.frodo/[应用版本号] Android/[版本] product/[产品代号] vendor/[生产厂家] model/[设备型号] rom/[ROM版本] network/[网络类型] udid/[UDID,应该可以用长度40的数字字母随机字符串代替] platform/mobile nd/1 基本上就是这么个格式

Libitum commented 3 years ago

占位符换掉之后如下 api-client/1 com.douban.frodo/[应用版本号] Android/[版本] product/[产品代号] vendor/[生产厂家] model/[设备型号] rom/[ROM版本] network/[网络类型] udid/[UDID,应该可以用长度40的数字字母随机字符串代替] platform/mobile nd/1 基本上就是这么个格式

赞!我修改试一下,多谢哈

dingyx99 commented 3 years ago

占位符换掉之后如下 api-client/1 com.douban.frodo/[应用版本号] Android/[版本] product/[产品代号] vendor/[生产厂家] model/[设备型号] rom/[ROM版本] network/[网络类型] udid/[UDID,应该可以用长度40的数字字母随机字符串代替] platform/mobile nd/1 基本上就是这么个格式

赞!我修改试一下,多谢哈

需要的话我可以试试看写了提个pr

Libitum commented 3 years ago

需要的话我可以试试看写了提个pr

我之前有类似的 code,应该还好。你觉得有没有必要弄成同一次 search 下 share 同样的 UA?还是完全随机就好了?

dingyx99 commented 3 years ago

需要的话我可以试试看写了提个pr

我之前有类似的 code,应该还好。你觉得有没有必要弄成同一次 search 下 share 同样的 UA?还是完全随机就好了?

如果为了模拟真实设备的操作的话,针对一次search就应该用同样的UA,然后在中间稍微多停1-2s;下一次search的时候换UA再来,中间间隔的时间可以稍微缩短一点

Libitum commented 3 years ago

我之前有类似的 code,应该还好。你觉得有没有必要弄成同一次 search 下 share 同样的 UA?还是完全随机就好了?

如果为了模拟真实设备的操作的话,针对一次search就应该用同样的UA,然后在中间稍微多停1-2s;下一次search的时候换UA再来,中间间隔的时间可以稍微缩短一点

嗯,我也觉得这样好一些。我先这么改试试

Libitum commented 3 years ago

我看了一下,他UA的格式是这样的

api-client/1 com.douban.frodo/7.0.1(204) Android/29 product/aosp_chiron vendor/Xiaomi model/Mi MIX 2  rom/miui6  network/wifi  udid/879f2335e3c6c5161b***be5b8d9  platform/mobile nd/1

占位符换掉之后如下 api-client/1 com.douban.frodo/[应用版本号] Android/[版本] product/[产品代号] vendor/[生产厂家] model/[设备型号] rom/[ROM版本] network/[网络类型] udid/[UDID,应该可以用长度40的数字字母随机字符串代替] platform/mobile nd/1 基本上就是这么个格式

顺便请问一下,您这个 UA 是怎么得到的?抓包么?

Libitum commented 3 years ago

@dingyx99 豆瓣应该对 UA 做了校验,至少我手动生成了几个,有一小半都是不行的....

dingyx99 commented 3 years ago

我看了一下,他UA的格式是这样的

api-client/1 com.douban.frodo/7.0.1(204) Android/29 product/aosp_chiron vendor/Xiaomi model/Mi MIX 2  rom/miui6  network/wifi  udid/879f2335e3c6c5161b***be5b8d9  platform/mobile nd/1

占位符换掉之后如下 api-client/1 com.douban.frodo/[应用版本号] Android/[版本] product/[产品代号] vendor/[生产厂家] model/[设备型号] rom/[ROM版本] network/[网络类型] udid/[UDID,应该可以用长度40的数字字母随机字符串代替] platform/mobile nd/1 基本上就是这么个格式

顺便请问一下,您这个 UA 是怎么得到的?抓包么?

是直接抓包抓出来的,用这个UA连续发请求(用的Postman)都OK

Libitum commented 3 years ago

是直接抓包抓出来的,用这个UA连续发请求(用的Postman)都OK

https://github.com/Libitum/jellyfin-plugin-douban/blob/master/Jellyfin.Plugin.Douban/FrodoAndroidClient.cs#L30 简单粗暴的实现了一下,麻烦看下如何?应该需要一个合法的 version list 和 手机型号的 list

caryyu commented 3 years ago

如果 apikey 无法 work 的话,那是不是这个插件基本就废掉了?