#!name=Trakt 增强 #!desc=Trakt App 各页面从英文改为简体中文或港台繁体,包括海报;历史页面剧集类别的已观看记录按电视剧合并;Trakt 的影片详情页添加 Forward、Infuse、Rex 跳转按钮;部分兼容其它使用了 Trakt API 的应用。 #!icon=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/images/trakt.webp #!homepage=https://github.com/DemoJameson/Proxy.Modules #!author=DemoJameson #!updatedTime=2026-10-30 13:00:31 #!arguments=fakeVipEnabled:true,chineseLocale:简体中文,posterImageMode:原片语言,translationEngine:谷歌翻译,characterTranslationEnabled:true,historyEpisodesMergedByShow:true,forwardButtonOrder:1,infuseButtonOrder:2,rexButtonOrder:3,backendBaseUrl:https://proxy-modules.demojameson.de5.net,tamperAppAuthorizationEnabled:false,debugMode:关闭 #!arguments-desc=fakeVipEnabled: 启用后伪装为 Trakt VIP 会员,移除 App 中的广告\nchineseLocale: 选择目标语言:简体中文、繁體中文(台灣)或繁體中文(香港)\nposterImageMode: 原片语言使用 TMDb 影片原始语言图片;中文按所选语言优先匹配海报;原图保留 Trakt 原图\ntranslationEngine: 选择翻译引擎:谷歌翻译(快,需翻墙)、DeepLX(慢,可直连)、关闭\ncharacterTranslationEnabled: 启用后会用豆瓣翻译角色名\nhistoryEpisodesMergedByShow: 启用后会将历史页面电视剧类别的观看记录按电视剧合并\nforwardButtonOrder: 序号代表在 Trakt 中的排序位置,0 不显示,默认 1\ninfuseButtonOrder: 序号代表在 Trakt 中的排序位置,0 不显示,默认 2\nrexButtonOrder: 序号代表在 Trakt 中的排序位置,0 不显示,默认 3\nbackendBaseUrl: 用于批量获取 Trakt 的中文翻译,一般留空即可\ntamperAppAuthorizationEnabled: 启用后将第三方 App 的 Trakt 授权篡改成 Trakt 官方 App,规避应用连接数的限制,请仅在需要时开启\ndebugMode: 禁用本地缓存:不读写持久化存储;禁用远端缓存:不请求后端缓存接口;禁用所有缓存:两者皆禁用 [Script] # 篡改第三方 App 的 Trakt OAuth 设备码与 token 请求(api/auth/web 三域名合并) Trakt OAuth Token Rewrite = type=http-request, pattern=^https:\/\/(?:apiz?\.trakt\.tv|auth\.trakt\.tv|trakt\.tv)\/oauth\/(?:device\/code|device\/token|token)(?:\?.*)?$, requires-body=true, timeout=10, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 替换第三方 App 的 Trakt 授权地址(trakt.tv / auth.trakt.tv 合并) Trakt OAuth Authorize Rewrite = type=http-request, pattern=^https:\/\/(?:auth\.)?trakt\.tv\/oauth\/authorize(?:\?.*)?$, timeout=10, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 将 Trakt 官方授权回调还原为第三方 App 回调(trakt.tv / auth.trakt.tv 合并) Trakt OAuth Callback Rewrite = type=http-response, pattern=^https:\/\/(?:auth\.)?trakt\.tv\/api\/auth\/oauth2\/authorize(?:\?.*)?$, timeout=10, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 记录篡改流程签发的设备码与 access/refresh token(auth/web 合并,api 由响应路由器处理) Trakt OAuth Token Response Rewrite = type=http-response, pattern=^https:\/\/(?:auth\.trakt\.tv|trakt\.tv)\/oauth\/(?:device\/code|device\/token|token)(?:\?.*)?$, requires-body=true, timeout=10, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 处理播放器 DeepLink 跳转 Direct Redirect = type=http-request, pattern=^https:\/\/proxy-modules\.demojameson\.de5\.net\/api\/redirect\?.*$, timeout=10, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # SofaTime 中自定义播放器 Logo TMDB Logo Redirect = type=http-request, pattern=^https:\/\/image\.tmdb\.org\/t\/p\/w342\/[a-z0-9_-]+_logo\.webp(?:\?.*)?$, timeout=10, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 拦截 sync/history/episodes 请求,放大 limit Trakt Sync History Episodes Request = type=http-request, pattern=^https:\/\/apiz?\.trakt\.tv\/sync\/history\/episodes\/?(\?.*)?$, timeout=10, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 拦截 history/episodes 请求,放大 limit Trakt History Episodes Request = type=http-request, pattern=^https:\/\/apiz?\.trakt\.tv\/users\/[^\/]+?\/history\/episodes\/?(\?.*)?$, timeout=10, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 拦截带季号的请求,记录当前浏览季 Trakt Current Season Request = type=http-request, pattern=^https:\/\/apiz?\.trakt\.tv\/shows\/[^\/]+\/seasons\/\d+(?:\/.*|\?.*)?$, timeout=10, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 按篡改流程签发的 access token 改写 trakt-api-key Trakt API Key Rewrite = type=http-request, pattern=^https:\/\/apiz?\.trakt\.tv\/(?!oauth\/).*$, timeout=10, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 统一拦截 Trakt 响应,由脚本内部分流处理 Trakt Response Router = type=http-response, pattern=^https:\/\/apiz?\.trakt\.tv\/.*$, requires-body=true, max-size=0, timeout=60, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 仅拦截 SofaTime 的 TMDB provider 列表,注入播放器 TMDB Provider Catalog = type=http-response, pattern=^https:\/\/api\.themoviedb\.org\/3\/watch\/providers\/(?:movie|tv)(\?.*)?$, requires-body=true, max-size=0, timeout=60, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js # 仅拦截 SofaTime 的 TMDB 详情请求(append_to_response 含 watch/providers),清除原有观看来源并注入排序 1 播放器 TMDB Detail Watch Providers = type=http-response, pattern=^https:\/\/api\.themoviedb\.org\/3\/(?:tv|movie)\/\d+\?.*watch(?:%2F|\/)providers.*$, requires-body=true, max-size=0, timeout=60, argument="{{{fakeVipEnabled}}},{{{chineseLocale}}},{{{posterImageMode}}},{{{translationEngine}}},{{{characterTranslationEnabled}}},{{{historyEpisodesMergedByShow}}},{{{forwardButtonOrder}}},{{{infuseButtonOrder}}},{{{rexButtonOrder}}},{{{backendBaseUrl}}},{{{tamperAppAuthorizationEnabled}}},{{{debugMode}}}", script-path=https://raw.githubusercontent.com/DemoJameson/Proxy.Modules/main/trakt_simplified_chinese/trakt_simplified_chinese.js [MITM] hostname = %APPEND% apiz.trakt.tv, api.trakt.tv, auth.trakt.tv, trakt.tv, api.themoviedb.org, image.tmdb.org, proxy-modules.demojameson.de5.net