一个 Chrome 扩展,提供对多个视频网站(B站、抖音、YouTube等)的播放、录制和AI内容分析功能,使用侧面板实现。
chromeplus02/
├── manifest.json // 扩展配置文件
├── background.js // 后台脚本
├── content_script.js // 内容注入脚本
├── sidepanel.html // 侧面板界面
├── sidepanel.js // 侧面板功能实现
├── styles.css // 样式表
├── config.js // 全局配置
├── utils.js // 工具函数
├── mcp_init.js // MCP服务初始化
└── README.md // 说明文档
- 播放/暂停视频
- 视频录制
- 录制文件保存
- 多平台内容识别
- AI模型分析
- 结果本地保存
- 哔哩哔哩
- 抖音
- YouTube
- 知乎
- 微博
- 小红书
-
标签页管理
- getCurrentTabUrl(): 获取当前标签页URL
- getActiveBilibiliTabId(): 获取活动B站标签页ID
- handleContentSiteInfo(): 处理网站信息
-
AI请求代理
- handleProxyAiRequest(): 处理AI API请求代理
- initialize(): 初始化扩展
- loadConfig(): 加载配置
- saveConfig(): 保存配置
-
MCP服务管理
- checkMcpService(): 检查MCP服务状态
- startMcpService(): 启动MCP服务
- updateMcpStatus(): 更新MCP状态
-
页面交互
- setupUrlChangeListener(): 设置URL变化监听
- onUrlChange(): URL变化处理
- updatePageInfo(): 更新页面信息
-
视频控制
- playVideo(): 播放视频
- pauseVideo(): 暂停视频
- startRecording(): 开始录制
- stopRecording(): 停止录制
-
内容分析
- analyzeContent(): 分析页面内容
- getBasicPageInfo(): 获取基本页面信息
-
配置管理
- loadConfig(): 加载配置
- saveConfig(): 保存配置
- getActiveAiModel(): 获取当前活跃的AI模型
-
站点识别
- isSupportedSite(): 检查URL是否为支持的网站
- getSiteInfo(): 获取网站信息
- getPromptTemplate(): 获取分析提示模板
-
文件处理
- formatPrompt(): 格式化提示模板
- formatFilename(): 格式化文件名
- checkMcpStatus(): 检查MCP服务状态
-
文件系统服务
- readFile(): 读取文件
- writeFile(): 写入文件
- createDirectory(): 创建目录
- fileExists(): 检查文件存在
- listDirectory(): 获取目录列表
-
MCP客户端
- checkAvailability(): 检查服务可用性
- saveToFile(): 保存内容到文件
{
interface: {
theme: 'auto', // 主题:'light', 'dark', 'auto'
language: 'zh-CN' // 语言:'zh-CN', 'en-US'
},
recording: {
format: 'webm', // 录制格式:'webm', 'mp4'
quality: 'high', // 质量:'low', 'medium', 'high'
autoSave: true // 是否自动保存
}
}{
supportedSites: [
{
id: 'bilibili',
name: '哔哩哔哩',
enabled: true,
domains: ['bilibili.com', 'b23.tv'],
patterns: ['*://*.bilibili.com/video/*', '*://b23.tv/*']
},
// 其他站点配置...
]
}{
aiModels: [
{
id: 'moonshot',
name: 'MoonShot',
enabled: true,
apiUrl: 'https://api.moonshot.cn/v1/chat/completions',
model: 'moonshot-v1-8k',
temperature: 0.7,
maxTokens: 2000,
apiKey: '' // 用户需要填写自己的API密钥
}
],
analysis: {
defaultModel: 'moonshot',
promptTemplates: {
// 不同网站的分析提示模板
}
}
}{
fileStorage: {
mcpEnabled: true, // 是否启用MCP服务
mcpApiUrl: 'http://localhost:51512', // MCP服务API地址
mcpServicePath: '', // MCP服务可执行文件路径
mcpStatus: false, // MCP服务运行状态
savedPath: 'D:/mcp/mcp_result_files', // 保存路径
filenameTemplate: '{title}_{date}_{time}' // 文件名模板
}
}activeTab: 访问当前标签页scripting: 注入脚本tabs: 访问标签系统sidePanel: 创建侧面板storage: 存储数据
"host_permissions": [
"*://*.bilibili.com/*",
"*://*.douyin.com/*",
"*://*.youtube.com/*",
"*://*.zhihu.com/*",
"*://*.weibo.com/*",
"*://*.xiaohongshu.com/*",
"https://api.moonshot.cn/*",
"https://api.openai.com/*",
"http://localhost:51512/*"
]样式主题在 styles.css 中定义,采用 B站主色调:
- 主色:#00a1d6 (B站蓝)
- 辅助色:#fb7299 (B站粉)
- 背景色:#f5f5f5
- 文字色:#333
提供了完整的响应式布局和动画效果,包括:
- 按钮悬停效果
- 通知消息动画
- 加载动画
- 状态指示器样式