欢迎使用我的五折码
五折码:CHEAP.5
七折码:CHEAP
以下插件纯属个人爱好,侵删谢谢。
纯为爱发电,模块只是自己要用,然后顺便分享,有问题可以私信机器人 https://t.me/ddjdd_bot ,感谢😊
其中用户ID和Cookie必填
de6358e6a8cca3e890f51e5f385e5aaa.png
我的豆瓣标签页中有显示用户ID最好用iPhone网页登陆豆瓣,然后用Loon或者Qx等工具抓包获取Cookie(不清楚Cookie多久失效,所以可能过一段时间需要重新获取填一次)
因为type为douban类型的items里依赖豆瓣数据里包含imdb_id,但很多综艺没有设置imdb_id,导致综艺片单识别到的只有个别,所以加了直接查询tmdb的版本
豆瓣的综艺title一般都包含第x季字样,所以用cleanTitle做了清理操作
修复下一页
增加doulist支持,并新增下拉选项片单[IMDB MOVIE TOP 250]/[IMDB TV TOP 250]/[意外结局电影]
(说明:由于用title查询TMDB,所以不一定能准确匹配正确影片)
又名找电影/找电视
应网友要求进行搬迁,详情请看issue:https://github.com/huangxd-/ForwardWidgets/issues/6
从想看列表中无序抽取9个影片(如果想看列表很长,每次打开想看总是刚添加的几个影片显示在前面,增加随机机制,让用户每次从9个想看的影片中挑选一部进行观看)
输入:演员姓名,可筛选,也可自定义,其中筛选类型以下几种,分别列举了50位
{ title: "国内男演员", value: "cn_actor" },
{ title: "国内女演员", value: "cn_actress" },
{ title: "港台男演员", value: "ht_actor" },
{ title: "港台女演员", value: "ht_actress" },
{ title: "日韩男演员", value: "jk_actor" },
{ title: "日韩女演员", value: "jk_actress" },
{ title: "欧美男演员", value: "ea_actor" },
{ title: "欧美女演员", value: "ea_actress" },
{ title: "国内导演", value: "cn_director" },
{ title: "国外导演", value: "fr_director" },输出:所有该影人的作品 排序:评价/时间
从豆瓣热播电影/电视剧/综艺/动漫分别随机获取3个未在影院上映的影片,并乱序后返回总共12个影片
几点说明: 1. trakt.js之所以不用官方trakt api,是因为尝试后发现目前生成的token 24小时之后会过期,如果要继续使用,需用上一次返回的refresh_token重新生成,当前插件也没有好的保存方式 2. trakt看过里是包含看了一半的电视的,也就是说正在看的电视也会出现在 看过-电视 里 3. 尝试后发现当前ForwardWidget插件的数据模型里如果type是tmdb,貌似有数据会被缓存覆盖的问题,douban和imdb类型不存在该问题
其中用户名和Cookie必填
在网页上登录你的Trakt,查看url如下 https://trakt.tv/users/xxxx/watchlist ,其中users后面跟的就是你的用户名,填了用户名后还是获取不到数据的请在Trakt设置里打开隐私开关
最好用iPhone网页登陆Trakt,然后用Loon或者Qx等工具抓包获取Cookie(不清楚Cookie多久失效,所以可能过一段时间需要重新获取填一次),一般找_traktsession=xxxx长这样的Cookie
从想看列表中无序抽取9个影片(如果想看列表很长,每次打开想看总是刚添加的几个影片显示在前面,增加随机机制,让用户每次从9个想看的影片中挑选一部进行观看)
说明:追剧日历只是尝鲜版,j佬到时候应该会在APP内嵌追剧功能 :)
其中用户名/片单列表名/Cookie同上,另外追剧日历中新增参数开始日期/天数/排序方式
片单示例 https://trakt.tv/users/giladg/lists/latest-4k-releases?sort=added,asc
用户名:giladg 片单列表名:latest-4k-releases
rank:排名算法 added:添加时间 title:标题 released:发布日期 runtime:内容时长 popularity:流行度 random:随机
asc:正序 or desc:反序
Trakt追剧日历会将个人watched, collected, or watchlisted中的节目在日历中呈现,具体可查看 https://trakt.tv/calendars/my/shows-movies
填数字,0表示今天,-1表示昨天,1表示明天,插件内会自动转换成相应日期
填数字,表示从开始日期的n天内的时间区间,最大值33天
如有时间区间[2025年05月01日, 2025年05月07日]
日期升序:返回 从 2025年05月01日 -> 2025年05月07日 的节目信息
日期降序:返回 从 2025年05月07日 -> 2025年05月01日 的节目信息
说明:可能有部分会迁移失败
- 先将
douban2trakt.py脚本中的几个必填参数填上
# 豆瓣用户ID DOUBAN_USER_ID = "" # TRAKT API APPS的Client ID,请前往 https://trakt.tv/oauth/applications/new 创建 TRAKT_CLIENT_ID = "" # TRAKT抓包获取的x-csrf-token,需有增删改操作的接口才有 TRAKT_X_CSRF_TOKEN = "" # TRAKT抓包获取的cookie TRAKT_COOKIE = ""
- 执行脚本
# 迁移想看列表 python douban2trakt.py --type watchlist # 迁移已看列表和打分,因为豆瓣是5分制,Trakt是10分制,所以会做乘以2操作后打分 python douban2trakt.py --type watched
只能说是尝鲜版,有挺多问题的,看j佬有没有时间优化下 :)
没有统一ping,不知道哪些会超时,也没预览 没有分类显示的地方 小组件已经添加的情况下,没有搜索入口 #有些源播放会闪退,不知道是什么原因,可能是缓冲太大?# #插件有缓存,如果不清缓存,会老是打开同一个时间点#
当前支持直播源内没有自带台标的情况下引用台名对应台标
内嵌了几个公开源,也可以自定义
新增PlutoTV源
PlutoTV-阿根廷 (Argentina) PlutoTV-巴西 (Brazil) PlutoTV-加拿大 (Canada) PlutoTV-智利 (Chile) PlutoTV-德国 (Germany) PlutoTV-西班牙 (Spain) PlutoTV-法国 (France) PlutoTV-英国 (Great Britain) PlutoTV-意大利 (Italy) PlutoTV-墨西哥 (Mexico) PlutoTV-美国 (United States)
一个订阅链接可能有上百上千个频道,可以按组名关键字筛选,至于有哪些组,需要自己打开订阅链接看下
增加了正则过滤,如.*(央视|卫视).*
一个订阅链接可能有上百上千个频道,可以按频道名称关键字筛选,至于有哪些频道,需要自己打开订阅链接看下
增加了正则过滤,如.*(B站|虎牙|斗鱼).*
说明:最新的数据只到今天以及前面m天的数据,可以参考官网 http://www.yatu.tv:2082/zuijin.asp
类型:动漫/电影/电视剧 开始日期:n天前,0表示今天,-1表示昨天,以此类推 天数:从开始日期开始的后面m天的数据
类型:连载动漫/剧场动漫/电影/香港电影/欧美电影/电视剧/美剧/综艺 时间:今日/本月/历史
类型:动漫/电影/电视剧 等级:非常好看/好看/一般/烂片
类型:今日播出剧集/今日播出番剧/今日播出国漫/今日播出综艺/明日播出剧集/明日播出番剧/明日播出国漫/明日播出综艺
类型:剧集/番剧/国漫/综艺 周几:全部/周一/周二/周三/周四/周五/周六/周日
类型:现正热播/人气 Top 10/新剧雷达/热门国漫/已收官好剧/华语热门/本季新番 地区:国产剧/日剧/英美剧/番剧/韩剧/港台剧
默认内置了80+片单,支持平铺筛选,可自定义
排序:默认排序/反序/名称/流行度/随机/最后添加/最早添加/最新发行/最早发行/最高评分/最低评分/最短时长/最长时长 类型:所有类型/动作/冒险/动画/喜剧/犯罪/纪录片/戏剧/家庭/奇幻/历史/恐怖/音乐/神秘/浪漫/科幻/惊悚/电视电影/战争/西部 年代:所有年代/2020年代/2010年代/2000年代/1990年代/1980年代/1970年代/1960年代/1950年代/1940年代/1930年代/1920年代/1910年代/1900年代/1890年代/1880年代/1870年代
使用方法请前往 https://t.me/ForwardWidgets/288 观看
从哪个服务器获取弹幕,默认是http://127.0.0.1
http://127.0.0.1 https://fc.lyz05.cn https://danmu.56uxi.com https://dmku.hls.one https://api.danmu.icu https://se.678.ooo https://dm.lxlad.com
弹幕服务器新增localhost http://127.0.0.1 ,弹幕下载会直接请求各平台(搬迁修改自 https://github.com/lyz05/danmaku ),支持爱优腾芒哔,相对原来直接请求三方弹幕服务器会相对更稳定一点
(削除) 其中爱平台下载弹幕的时候需要zlib解压,fw的widget.http.get不支持返回arrayBuffer,没找到好的解决办法,所以当前先用cloudflare转了一下,worker.js如下 (削除ここまで):
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)); }); async function handleRequest(request) { try { // Extract URL from query parameter const url = new URL(request.url).searchParams.get('url'); if (!url) { return new Response('Missing URL parameter', { status: 400 }); } // Fetch the compressed data from the provided URL const response = await fetch(url); if (!response.ok) { return new Response(`Failed to fetch URL: ${response.statusText}`, { status: response.status }); } // Get the response body as an ArrayBuffer const compressedData = await response.arrayBuffer(); // Decompress the zlib-compressed data const decompressedData = await decompress(compressedData); // Convert decompressed data to text const text = new TextDecoder().decode(decompressedData); // Return the decompressed data return new Response(text, { status: 200, headers: { 'Content-Type': 'text/plain' } }); } catch (error) { return new Response(`Error: ${error.message}`, { status: 500 }); } } // Decompress zlib data using Web Crypto API async function decompress(data) { const stream = new ReadableStream({ start(controller) { controller.enqueue(new Uint8Array(data)); controller.close(); } }); const decompressedStream = stream.pipeThrough(new DecompressionStream('deflate')); const reader = decompressedStream.getReader(); const chunks = []; while (true) { const { done, value } = await reader.read(); if (done) break; chunks.push(value); } // Combine chunks into a single Uint8Array const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0); const result = new Uint8Array(totalLength); let offset = 0; for (const chunk of chunks) { result.set(chunk, offset); offset += chunk.length; } return result; }
https://www.bilibili.com/video/av170001
https://www.mgtv.com/b/336727/8087768.html
https://v.qq.com/x/cover/53q0eh78q97e4d1/x00174aq5no.html
https://v.youku.com/v_show/id_XNTE5NjUxNjUyOA==.html
https://www.iqiyi.com/v_bb6gsxzz78.html
https://ani.gamer.com.tw/animeVideo.php?sn=41645目前已兼容手机端网页url
https://m.bilibili.com/bangumi/play/ep1231564 https://m.mgtv.com/b/771610/23300622.html https://m.v.qq.com/x/m/play?cid=53q0eh78q97e4d1&vid=x00174aq5no https://m.youku.com/alipay_video/id_cbff0b0703e54d659628.html https://m.iqiyi.com/v_1ftv9n1m3bg.html
如果还想继续使用v1版本,请添加插件链接 https://raw.githubusercontent.com/huangxd-/ForwardWidgets/refs/tags/danmu-v1/widgets/danmu_auto.js
会自动获取平台播放链接并根据链接下载弹幕(目前主要适配了电视剧和电影以及综艺)
实在自动获取不到的就蒜鸟,手动也不是不可以,或者反馈下我tg机器人 https://t.me/ddjdd_bot
综艺是根据集发布日期和集标题匹配的播放链接,所以如果emby刮削不准确或者360kan平台没有该综艺都会匹配不到
弹幕下载流程图
弹幕下载流程图
从哪个服务器获取弹幕,默认是http://127.0.0.1
http://127.0.0.1 https://fc.lyz05.cn https://danmu.56uxi.com https://dmku.hls.one https://api.danmu.icu https://se.678.ooo https://dm.lxlad.com
弹幕服务器新增localhost http://127.0.0.1 ,弹幕下载会直接请求各平台(搬迁修改自 https://github.com/lyz05/danmaku ),支持爱优腾芒哔,外加人人,相对原来直接请求三方弹幕服务器会相对更稳定一点
其中爱平台下载弹幕的时候需要zlib解压,fw的widget.http.get不支持返回arrayBuffer,没找到好的解决办法,所以当前先用cloudflare转了一下
弹幕服务器localhost增加分片请求
设置的弹幕服务器下载弹幕失败的情况下轮询其他弹幕服务器
默认关闭,打开的情况下会跳过360kan站点查询,直接请求vod站点
新增电影弹幕优先平台,用于控制从哪个平台下载电影弹幕,默认随机,且如果指定的平台在返回数据中不存在,则随机
从vod站点拿播放信息用于补充360kan缺失影片的问题
设置的vod站点搜索信息失败的情况下轮询其他剩余站点
新增debug开关,默认关闭,打开的状态下会在开头2分钟内打印错误日志弹幕
支持5个弹幕API填写,弹幕链接获取失败后,会依次轮询弹幕API,以获取韩剧/美剧等
优先请求弹幕API获取弹幕 (开启后准确性可能没有通过链接匹配的高)
回合了danmu_api项目的特性,相对v1做了以下修改
1. 增加弹幕选集 2. 默认弹幕分片,不再提供开关选择 3. 增加韩剧tv源以及巴哈姆特源,bahamut需要走代理,默认不开启,请通过切换source_order配置开启 4. 可通过vod_servers配置多个vod,优先返回第一个有数据的vod 5. 增加bilibili_cookie参数配置,配置之后可获取b站完整弹幕 6. 增加source_order配置,用于按源对返回资源的排序 7. 增加blocked_words弹幕屏蔽词正则配置 8. 增加group_minute合并去重分钟数,表示按n分钟分组后对弹幕合并去重 9. 去除其他开关以及第三方弹幕API配置
| 变量名称 | 描述 |
|---|---|
| other_server | 【可选】兜底第三方弹幕服务器,不填默认为https://api.danmu.icu |
| vod_servers | 【可选】VOD服务器列表,支持多个服务器并发查询,格式:名称@URL,名称@URL,...,示例:vod@https://www.caiji.cyou,vod2@https://zy.xmm.hk,不填默认为vod@https://www.caiji.cyou,默认返回第一个有数据的vod |
| bilibili_cookie | 【可选】b站cookie(填入后能抓取完整弹幕),如 buvid3=E2BCA ... eao6; theme-avatar-tip-show=SHOWED,请自行通过浏览器或抓包工具抓取,热心网友测试后,实际最少只需取 SESSDATA=xxxx 字段 |
| source_order | 【可选】源排序,用于按源对返回资源的排序(注意:先后顺序会影响自动匹配最终的返回),默认是360,vod,renren,hanjutv,表示360数据排在最前,hanjutv数据排在最后,示例:360,renren:只返回360数据和renren数据,且360数据靠前;当前可选择的源字段有 360,vod,renren,hanjutv,bahamut |
| blocked_words | 【可选】弹幕屏蔽词列表,默认为空,示例如下 |
| group_minute | 【可选】合并去重分钟数,表示按n分钟分组后对弹幕合并去重,默认为1,最大值为30,0表示不去重 |
#BLOCKED_WORDS示例值 /.{20,}/,/^\d{2,4}[-/.]\d{1,2}[-/.]\d{1,2}([日号.]*)?$/,/^(?!哈+$)([a-zA-Z\u4e00-\u9fa5])1円{2,}/,/[0-9]+\.*[0-9]*\s*(w|万)+\s*(\+|个|人|在看)+/,/^[a-z]{6,}$/,/^(?:qwertyuiop|asdfghjkl|zxcvbnm)$/,/^\d{5,}$/,/^(\d)1円{2,}$/,/\d{1,4}/,/(20[0-3][0-9])/,/(0?[1-9]|1[0-2])月/,/\d{1,2}[.-]\d{1,2}/,/[@#&$%^*+\|/\-_=<>°◆だいやまーく◇■しかく□しろいしかく●くろまる○しろまる★☆▼▲さんかく♥♦♠♣12345678910]/,/[一二三四五六七八九十百\d]+刷/,/第[一二三四五六七八九十百\d]+/,/(全体成员|报到|报道|来啦|签到|刷|打卡|我在|来了|考古|爱了|挖坟|留念|你好|回来|哦哦|重温|复习|重刷|再看|在看|前排|沙发|有人看|板凳|末排|我老婆|我老公|撅了|后排|周目|重看|包养|DVD|同上|同样|我也是|俺也|算我|爱豆|我家爱豆|我家哥哥|加我|三连|币|新人|入坑|补剧|冲了|硬了|看完|舔屏|万人|牛逼|煞笔|傻逼|卧槽|tm|啊这|哇哦)/ #注释如下: /.{20,}/#屏蔽20字符及以上的弹幕 /^\d{2,4}[-/.]\d{1,2}[-/.]\d{1,2}([日号.])?$/#屏蔽日期弹幕 /^(?!哈+$)([a-zA-Z\u4e00-\u9fa5])1円{2,}/#屏蔽单个汉字或者字母连续出现3次及以上的弹幕(排除纯"哈"重复) /[0-9]+.[0-9]\s(w|万)+\s*(\+|个|人|在看)+/#屏蔽几点几万在看的弹幕 /^[a-z]{6,}$/#屏蔽6个及以上连续小写字母的弹幕 /^(?:qwertyuiop|asdfghjkl|zxcvbnm)$/#屏蔽键盘连续行的弹幕 /^\d{5,}$/#屏蔽5位及以上纯数字的弹幕 /^(\d)1円{2,}$/#屏蔽三个及以上相同数字重复的弹幕 /\d{1,4}/#屏蔽1-4位数字的弹幕 /(20[0-3][0-9])/#屏蔽2000-2039年份相关的弹幕 /(0?[1-9]|1[0-2])月/#屏蔽月份表述的弹幕 /\d{1,2}[.-]\d{1,2}/#屏蔽类似时间或日期分隔的数字弹幕 /[@#&$%^*+\|/\-_=<>°◆だいやまーく◇■しかく□しろいしかく●くろまる○しろまる★☆▼▲さんかく♥♦♠♣12345678910]/#屏蔽特殊符号或表情符号的弹幕 /[一二三四五六七八九十百\d]+刷/#屏蔽数字或汉字数字后跟"刷"的弹幕 /第[一二三四五六七八九十百\d]+/#屏蔽"第几"序号相关的弹幕 /(全体成员|报到|报道|来啦|签到|刷|打卡|我在|来了|考古|爱了|挖坟|留念|你好|回来|哦哦|重温|复习|重刷|再看|在看|前排|沙发|有人看|板凳|末排|我老婆|我老公|撅了|后排|周目|重看|包养|DVD|同上|同样|我也是|俺也|算我|爱豆|我家爱豆|我家哥哥|加我|三连|币|新人|入坑|补剧|冲了|硬了|看完|舔屏|万人|牛逼|煞笔|傻逼|卧槽|tm|啊这|哇哦)/#屏蔽常见互动、报到或口语化弹幕词汇
【豆瓣】 豆瓣我看:1小时 豆瓣个性化推荐:12小时 豆瓣片单(TMDB版):12小时 电影推荐(TMDB版):24小时 剧集推荐(TMDB版):24小时 观影偏好(TMDB版):24小时 豆瓣影人作品:1周 豆瓣首页轮播图:1小时 【trakt】 trakt我看:1小时 trakt个性化推荐:12小时 trakt片单:24小时 trakt追剧日历:12小时 【直播(电视+网络)】 订阅链接:6小时 详情页:60秒 【雅图(每日放送+点播排行榜+评分排行榜)】 每日放送:6小时 点播排行榜:6小时 评分排行榜:24小时 【追剧日历(今/明日播出、周历、各项榜单、今日推荐)】 今日播出:6小时 明日播出:6小时 播出周历:6小时 今日推荐:12小时 各项榜单:24小时 地区榜单:24小时 【Letterboxd电影爱好者平台】 Letterboxd片单:24小时
请跳转项目:PicStoreJson
一个人人都能部署的基于 js 的弹幕 API 服务器,支持爱优腾芒哔人弹幕直接获取,兼容弹弹play的搜索、详情查询和弹幕获取接口,并提供日志记录,支持vercel/cloudflare/docker/claw等部署方式,不用提前下载弹幕,没有nas或小鸡也能一键部署。
FW可以配合
damu_api插件使用
请跳转项目:danmu_api