diff --git a/README.md b/README.md
index 54b36fa..8a3c46f 100644
--- a/README.md
+++ b/README.md
@@ -8,13 +8,13 @@
> 🎬 **MoonTVPlus** 是基于 [MoonTV v100](https://github.com/MoonTechLab/LunaTV) 二次开发的增强版影视聚合播放器。它在原版基础上新增了外部播放器支持、视频超分、弹幕系统、评论抓取等实用功能,提供更强大的观影体验。
+





-
@@ -346,6 +346,7 @@ dockge/komodo 等 docker compose UI 也有自动更新功能
| NEXT_PUBLIC_DANMAKU_CACHE_EXPIRE_MINUTES | 弹幕缓存失效时间(分钟数,设为 0 时不缓存) | 0 或正整数 | 4320(3天) |
| ENABLE_TVBOX_SUBSCRIBE | 是否启用 TVBOX 订阅功能 | true/false | false |
| TVBOX_SUBSCRIBE_TOKEN | TVBOX 订阅 API 访问 Token,如启用TVBOX功能必须设置该项 | 任意字符串 | (空) |
+| TVBOX_BLOCKED_SOURCES | TVBOX 订阅屏蔽源列表(多个源用逗号分隔,匹配视频源的 key) | 逗号分隔的源 key | (空) |
| WATCH_ROOM_ENABLED | 是否启用观影室功能(vercel部署不支持该功能,可使用外部服务器) | true/false | false |
| WATCH_ROOM_SERVER_TYPE | 观影室服务器类型 | internal/external | internal |
| WATCH_ROOM_EXTERNAL_SERVER_URL | 外部观影室服务器地址(当 SERVER_TYPE 为 external 时必填) | WebSocket URL | (空) |
@@ -448,6 +449,8 @@ NEXT_PUBLIC_VOICE_CHAT_STRATEGY 选项解释:
ENABLE_TVBOX_SUBSCRIBE=true
# 设置订阅访问 Token(请使用强密码)
TVBOX_SUBSCRIBE_TOKEN=your_secure_random_token
+ # 可选:屏蔽特定视频源(多个源用逗号分隔,填写视频源的 key)
+ TVBOX_BLOCKED_SOURCES=source1,source2
```
2. 重启应用后,登录网站,点击用户菜单中的"订阅"按钮
diff --git a/src/app/api/tvbox/subscribe/route.ts b/src/app/api/tvbox/subscribe/route.ts
index a7c5d29..8207524 100644
--- a/src/app/api/tvbox/subscribe/route.ts
+++ b/src/app/api/tvbox/subscribe/route.ts
@@ -2,7 +2,6 @@
import { NextRequest, NextResponse } from 'next/server';
-import { getAuthInfoFromCookie } from '@/lib/auth';
import { getAvailableApiSites, getConfig } from '@/lib/config';
import { getCachedLiveChannels } from '@/lib/live';
@@ -36,15 +35,11 @@ export async function GET(request: NextRequest) {
}
try {
- // 获取用户信息
- const authInfo = getAuthInfoFromCookie(request);
- const username = authInfo?.username;
-
// 获取配置
const config = await getConfig();
- // 获取视频源
- const apiSites = await getAvailableApiSites(username);
+ // 获取视频源(TVBox客户端不会发送Cookie,直接获取所有启用的源)
+ const apiSites = await getAvailableApiSites();
// 获取直播源
const liveConfig = config.LiveConfig?.filter(live => !live.disabled) || [];
@@ -160,6 +155,18 @@ export async function GET(request: NextRequest) {
ads: [],
};
+ // 获取屏蔽源列表并过滤
+ const blockedSources = process.env.TVBOX_BLOCKED_SOURCES
+ ? process.env.TVBOX_BLOCKED_SOURCES.split(',').map(s => s.trim()).filter(Boolean)
+ : [];
+
+ if (blockedSources.length > 0) {
+ tvboxSubscription.sites = tvboxSubscription.sites.filter(
+ site => !blockedSources.includes(site.key)
+ );
+ console.log('TVBOX 订阅已屏蔽源:', blockedSources);
+ }
+
return NextResponse.json(tvboxSubscription, {
headers: {
'Content-Type': 'application/json; charset=utf-8',