├── .gitignore ├── main.js ├── .github └── workflows │ ├── delete.yml │ └── update.yml ├── scripts ├── utils.js ├── update-readme.js └── process-sources.js ├── source ├── bt │ ├── anibt.json │ └── H.json └── online │ ├── H.json │ ├── css.json │ └── ani-yuan.json ├── dist └── bt.json ├── README.md ├── log └── config.js /.gitignore: -------------------------------------------------------------------------------- 1 | git-reset.sh 2 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | const processSources = require('./scripts/process-sources'); 2 | const updateReadme = require('./scripts/update-readme'); 3 | const { logError } = require('./scripts/utils'); 4 | 5 | async function main() { 6 | try { 7 | await processSources(); 8 | updateReadme(); 9 | } catch (err) { 10 | logError(err); 11 | process.exit(1); 12 | } 13 | } 14 | 15 | main(); 16 | -------------------------------------------------------------------------------- /.github/workflows/delete.yml: -------------------------------------------------------------------------------- 1 | name: Delete Old Workflow 2 | on: 3 | schedule: 4 | - cron: '0 0 * * 0' 5 | 6 | jobs: 7 | del_runs: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Delete releases and workflows runs 11 | uses: ophub/delete-releases-workflows@main 12 | with: 13 | delete_releases: true 14 | releases_keep_latest: 5 15 | delete_workflows: true 16 | workflows_keep_day: 10 17 | gh_token: ${{ secrets.GITHUB_TOKEN }} 18 | -------------------------------------------------------------------------------- /.github/workflows/update.yml: -------------------------------------------------------------------------------- 1 | name: Update Source 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 * * *' 6 | workflow_dispatch: 7 | 8 | jobs: 9 | update: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v3 15 | 16 | - name: Set up Node.js 17 | uses: actions/setup-node@v3 18 | with: 19 | node-version: '18' 20 | 21 | - name: Run main script 22 | run: node main.js 23 | 24 | - name: Commit and push changes 25 | run: | 26 | git config --global user.name 'github-actions[bot]' 27 | git config --global user.email 'github-actions[bot]@users.noreply.github.com' 28 | git add dist source log 29 | if ! git diff --staged --quiet; then 30 | git commit -m "Update sources" 31 | git push 32 | else 33 | echo "No changes to commit" 34 | fi 35 | -------------------------------------------------------------------------------- /scripts/utils.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | 4 | const rootDir = path.resolve(__dirname, '..'); 5 | const logPath = path.join(rootDir, 'log'); 6 | 7 | function getTimestamp() { 8 | const now = new Date(); 9 | const year = now.getFullYear(); 10 | const month = String(now.getMonth() + 1).padStart(2, '0'); 11 | const day = String(now.getDate()).padStart(2, '0'); 12 | const hours = String(now.getHours()).padStart(2, '0'); 13 | const minutes = String(now.getMinutes()).padStart(2, '0'); 14 | const seconds = String(now.getSeconds()).padStart(2, '0'); 15 | return `${year}/${month}/${day} ${hours}:${minutes}:${seconds}`; 16 | } 17 | 18 | function log(message) { 19 | const timestamp = getTimestamp(); 20 | const logMessage = `[${timestamp}] ${message}`; 21 | console.log(logMessage); 22 | fs.appendFileSync(logPath, logMessage + '\n'); 23 | } 24 | 25 | function logError(message) { 26 | const timestamp = getTimestamp(); 27 | const logMessage = `[${timestamp}] ERROR: ${message}`; 28 | console.error(logMessage); 29 | fs.appendFileSync(logPath, logMessage + '\n'); 30 | } 31 | 32 | async function downloadFile(fileUrl) { 33 | const response = await fetch(fileUrl); 34 | if (!response.ok) { 35 | throw new Error(`Status code: ${response.status}`); 36 | } 37 | return await response.text(); 38 | } 39 | 40 | module.exports = { 41 | log, 42 | logError, 43 | downloadFile, 44 | rootDir 45 | }; 46 | -------------------------------------------------------------------------------- /source/bt/anibt.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportedMediaSourceDataList": { 3 | "mediaSources": [ 4 | { 5 | "factoryId": "rss", 6 | "version": 1, 7 | "arguments": { 8 | "name": "ACG.RIP", 9 | "description": "BT 资源聚合站", 10 | "iconUrl": "https://acgrip.art/favicon.ico", 11 | "searchConfig": { 12 | "searchUrl": "https://acgrip.art/.xml?term={keyword}}", 13 | "filterByEpisodeSort": true, 14 | "filterBySubjectName": true 15 | } 16 | } 17 | }, 18 | { 19 | "factoryId": "rss", 20 | "version": 1, 21 | "arguments": { 22 | "name": "动漫花园", 23 | "description": "不一定能连上", 24 | "iconUrl": "https://share.dmhy.org/favicon.ico", 25 | "searchConfig": { 26 | "searchUrl": "https://share.dmhy.org/topics/rss/rss.xml?keyword={keyword}", 27 | "filterByEpisodeSort": true, 28 | "filterBySubjectName": true 29 | } 30 | } 31 | }, 32 | { 33 | "factoryId": "rss", 34 | "version": 1, 35 | "arguments": { 36 | "name": "末日动漫资源库", 37 | "description": "不一定能连上", 38 | "iconUrl": "https://share.acgnx.cc/favicon.ico", 39 | "searchConfig": { 40 | "searchUrl": "https://share.acgnx.cc/rss.xml?keyword={keyword}", 41 | "filterByEpisodeSort": true, 42 | "filterBySubjectName": true 43 | } 44 | } 45 | } 46 | ] 47 | } 48 | } -------------------------------------------------------------------------------- /dist/bt.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportedMediaSourceDataList": { 3 | "mediaSources": [ 4 | { 5 | "factoryId": "rss", 6 | "version": 1, 7 | "arguments": { 8 | "name": "ACG.RIP", 9 | "description": "BT 资源聚合站", 10 | "iconUrl": "https://acgrip.art/favicon.ico", 11 | "searchConfig": { 12 | "searchUrl": "https://acgrip.art/.xml?term={keyword}}", 13 | "filterByEpisodeSort": true, 14 | "filterBySubjectName": true 15 | } 16 | } 17 | }, 18 | { 19 | "factoryId": "rss", 20 | "version": 1, 21 | "arguments": { 22 | "name": "动漫花园", 23 | "description": "不一定能连上", 24 | "iconUrl": "https://share.dmhy.org/favicon.ico", 25 | "searchConfig": { 26 | "searchUrl": "https://share.dmhy.org/topics/rss/rss.xml?keyword={keyword}", 27 | "filterByEpisodeSort": true, 28 | "filterBySubjectName": true 29 | } 30 | } 31 | }, 32 | { 33 | "factoryId": "rss", 34 | "version": 1, 35 | "arguments": { 36 | "name": "末日动漫资源库", 37 | "description": "不一定能连上", 38 | "iconUrl": "https://share.acgnx.cc/favicon.ico", 39 | "searchConfig": { 40 | "searchUrl": "https://share.acgnx.cc/rss.xml?keyword={keyword}", 41 | "filterByEpisodeSort": true, 42 | "filterBySubjectName": true 43 | } 44 | } 45 | }, 46 | { 47 | "factoryId": "rss", 48 | "version": 1, 49 | "arguments": { 50 | "name": "nyaa-里", 51 | "description": "H~低调使用~", 52 | "iconUrl": "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/favicon/nyaa.si_H.png", 53 | "searchConfig": { 54 | "searchUrl": "https://sukebei.nyaa.si/?page=rss&q={keyword}&c=0_0&f=0", 55 | "filterByEpisodeSort": true, 56 | "filterBySubjectName": false 57 | } 58 | } 59 | } 60 | ] 61 | } 62 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [Animeko 聚合订阅源/数据源](https://github.com/open-ani/animeko) 2 | 3 | [![Update Source](https://github.com/MajoSissi/animeko-source/actions/workflows/update.yml/badge.svg)](https://github.com/MajoSissi/animeko-source/actions/workflows/update.yml) 4 | 5 | 6 | 7 | ### 聚合订阅源 (已去重) 8 | 9 | | 分 类 | 链 接 (除了第一个都是加速链接, 订阅其中一个即可)| 10 | |---|---| 11 | | 在线+BT | https://raw.githubusercontent.com/MajoSissi/animeko-source/main/dist/all.json

https://ghfast.top/raw.githubusercontent.com/MajoSissi/animeko-source/main/dist/all.json

https://gh-proxy.com/raw.githubusercontent.com/MajoSissi/animeko-source/main/dist/all.json | 12 | | 在线 | https://raw.githubusercontent.com/MajoSissi/animeko-source/main/dist/online.json

https://ghfast.top/raw.githubusercontent.com/MajoSissi/animeko-source/main/dist/online.json

https://gh-proxy.com/raw.githubusercontent.com/MajoSissi/animeko-source/main/dist/online.json | 13 | | BT | https://raw.githubusercontent.com/MajoSissi/animeko-source/main/dist/bt.json

https://ghfast.top/raw.githubusercontent.com/MajoSissi/animeko-source/main/dist/bt.json

https://gh-proxy.com/raw.githubusercontent.com/MajoSissi/animeko-source/main/dist/bt.json | 14 | 15 | ### 三方订阅源 (聚合源"已包含") 16 | 17 | | 分 类 | 来 源 | 链 接 | 18 | |---|---|---| 19 | | 在线 | [源](https://github.com/cxay666/ani-yuan) | https://raw.githubusercontent.com/cxay666/ani-yuan/main/ani-yuan.json | 20 | | 在线 | [源](https://github.com/Nier4ever/ani-sub) | https://raw.githubusercontent.com/Nier4ever/ani-sub/main/css.json | 21 | | 在线 | [源](https://gitee.com/wan0ge/extract-pure-links) | https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/H.json | 22 | | BT | | https://masofod.github.io/anibt.json | 23 | | BT | [源](https://gitee.com/wan0ge/extract-pure-links) | https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/H.json | 24 | 25 | 26 | 27 | ### 官方订阅源 (应用自带源 - 聚合源"不包含") 28 | 29 | | 分 类 | 链 接 | 30 | |---|---| 31 | | 在线资源 | https://sub.creamycake.org/v1/css1.json | 32 | | BT资源 | https://sub.creamycake.org/v1/bt1.json | 33 | -------------------------------------------------------------------------------- /log: -------------------------------------------------------------------------------- 1 | [2025/12/19 00:58:08] Starting update process... 2 | [2025/12/19 00:58:08] ================================================================================ 3 | [2025/12/19 00:58:08] Processing category: online (在线) 4 | [2025/12/19 00:58:08] ================================================================================ 5 | [2025/12/19 00:58:08] Downloading https://raw.githubusercontent.com/cxay666/ani-yuan/main/ani-yuan.json... 6 | [2025/12/19 00:58:08] Downloading https://raw.githubusercontent.com/Nier4ever/ani-sub/main/css.json... 7 | [2025/12/19 00:58:08] Duplicate source skipped in category: Aki动漫 (www.akianime.cc) 8 | [2025/12/19 00:58:08] Downloading https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/H.json... 9 | [2025/12/19 00:58:10] [Filter] Skipped nyaa-里 (sukebei.nyaa.si) - Item Exclude Filter: sukebei.nyaa.si 10 | [2025/12/19 00:58:10] Duplicate source skipped in category: hanime1_720p (hanime1.me) 11 | [2025/12/19 00:58:10] Saved merged file to /home/runner/work/animeko-source/animeko-source/dist/online.json 12 | [2025/12/19 00:58:10] ================================================================================ 13 | [2025/12/19 00:58:10] Processing category: bt (BT) 14 | [2025/12/19 00:58:10] ================================================================================ 15 | [2025/12/19 00:58:10] Downloading https://masofod.github.io/anibt.json... 16 | [2025/12/19 00:58:10] Downloading https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/H.json... 17 | [2025/12/19 00:58:11] [Filter] Skipped hanime1_1080p (hanime1.me) - Item Filter: sukebei.nyaa.si 18 | [2025/12/19 00:58:11] [Filter] Skipped hanime1_720p (hanime1.me) - Item Filter: sukebei.nyaa.si 19 | [2025/12/19 00:58:11] [Filter] Skipped hanime1_one.me (hanimeone.me) - Item Filter: sukebei.nyaa.si 20 | [2025/12/19 00:58:11] Saved merged file to /home/runner/work/animeko-source/animeko-source/dist/bt.json 21 | [2025/12/19 00:58:11] Saved merged file to /home/runner/work/animeko-source/animeko-source/dist/all.json 22 | [2025/12/19 00:58:11] Source processing completed. 23 | [2025/12/19 00:58:11] README.md updated. 24 | -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 配置说明: 3 | * filter (包含过滤器) / excludeFilter (排除过滤器): 4 | * - 字符串: 简单的包含匹配 (例如 "baidu" 会匹配 "www.baidu.com") 5 | * - 正则格式字符串: 使用 "/pattern/flags" 格式 (例如 "/^baidu\\.com$/i") 6 | * 7 | * 优先级: 8 | * - urls 中的 filter/excludeFilter 仅对该 url 下载的内容生效 9 | * - sources 中的 filter/excludeFilter 对该分类下所有内容生效 10 | * - 两者是"与"的关系,即同时满足(如果都存在) 11 | * 12 | * 示例: 13 | * { 14 | * name: "示例分类", 15 | * tag: "example", 16 | * filter: "/(baidu|google)/i", // 整合过滤,只保留域名中包含 baidu 或 google 的源 17 | * excludeFilter: "ad", // 整合排除, 排除域名中包含 "ad" 的源 18 | * urls: [ 19 | * { 20 | * file: "example.json", 21 | * src: "https://example.com", 22 | * * filter: null, // 单独设置,覆盖默认行为(注意:目前逻辑是叠加过滤,不是覆盖,具体看 process-sources.js 实现) 23 | * // 修正:根据代码逻辑,itemFilter 和 globalFilter 是同时生效的 (&& 关系) 24 | * excludeFilter: "/test/i" // 排除包含 test 的源 25 | * url: "https://example.com/data.json", 26 | 27 | * } 28 | * ] 29 | * } 30 | */ 31 | 32 | module.exports = { 33 | // 更新readme用的 34 | proxy: [ 35 | "https://ghfast.top/", 36 | "https://gh-proxy.com/" 37 | ], 38 | sources: [ 39 | { 40 | name: "在线", 41 | tag: "online", 42 | urls: [ 43 | { 44 | file: "ani-yuan.json", 45 | src: "https://github.com/cxay666/ani-yuan", 46 | url: "https://raw.githubusercontent.com/cxay666/ani-yuan/main/ani-yuan.json" 47 | }, 48 | { 49 | file: "css.json", 50 | src: "https://github.com/Nier4ever/ani-sub", 51 | url: "https://raw.githubusercontent.com/Nier4ever/ani-sub/main/css.json" 52 | }, 53 | { 54 | file: "H.json", 55 | src: "https://gitee.com/wan0ge/extract-pure-links", 56 | excludeFilter: "sukebei.nyaa.si", 57 | url: "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/H.json" 58 | } 59 | ] 60 | }, 61 | { 62 | name: "BT", 63 | tag: "bt", 64 | urls: [ 65 | { 66 | file: "anibt.json", 67 | url: "https://masofod.github.io/anibt.json" 68 | }, 69 | { 70 | file: "H.json", 71 | src: "https://gitee.com/wan0ge/extract-pure-links", 72 | filter: "sukebei.nyaa.si", 73 | url: "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/H.json" 74 | } 75 | ] 76 | } 77 | ] 78 | }; 79 | -------------------------------------------------------------------------------- /scripts/update-readme.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | const { log, rootDir } = require('./utils'); 4 | const config = require('../config.js'); 5 | 6 | // 仓库信息,用于生成链接 7 | const REPO = process.env.GITHUB_REPOSITORY || 'MajoSissi/animeko-source'; 8 | 9 | function updateReadme() { 10 | const readmePath = path.join(rootDir, 'README.md'); 11 | let readmeContent = ''; 12 | if (fs.existsSync(readmePath)) { 13 | readmeContent = fs.readFileSync(readmePath, 'utf8'); 14 | } 15 | 16 | // Generate Mixed Sources Table (Markdown) 17 | let mixedTable = '### 聚合订阅源 (已去重)\n\n'; 18 | mixedTable += '| 分 类 | 链 接 (除了第一个都是加速链接, 订阅其中一个即可)|\n'; 19 | mixedTable += '|---|---|\n'; 20 | 21 | // Add "综合资源" first 22 | const allName = "在线+BT"; 23 | const allFileName = "all.json"; 24 | const allRawUrl = `https://raw.githubusercontent.com/${REPO}/main/dist/${allFileName}`; 25 | let allLinksHtml = `${allRawUrl}`; 26 | config.proxy.forEach((proxyUrl) => { 27 | const shortRawUrl = allRawUrl.replace(/^https?:\/\//, ''); 28 | const fullUrl = proxyUrl + shortRawUrl; 29 | allLinksHtml += `

${fullUrl}`; 30 | }); 31 | mixedTable += `| ${allName} | ${allLinksHtml} |\n`; 32 | 33 | for (const source of config.sources) { 34 | const category = source.tag; 35 | const displayName = source.name; 36 | const fileName = `${category}.json`; 37 | const rawUrl = `https://raw.githubusercontent.com/${REPO}/main/dist/${fileName}`; 38 | 39 | let linksHtml = `${rawUrl}`; 40 | 41 | // Proxy Links 42 | config.proxy.forEach((proxyUrl, index) => { 43 | const shortRawUrl = rawUrl.replace(/^https?:\/\//, ''); 44 | const fullUrl = proxyUrl + shortRawUrl; 45 | linksHtml += `

${fullUrl}`; 46 | }); 47 | 48 | mixedTable += `| ${displayName} | ${linksHtml} |\n`; 49 | } 50 | 51 | // Generate Original Sources Table 52 | let originalTable = '### 三方订阅源 (聚合源"已包含")\n\n'; 53 | originalTable += '| 分 类 | 来 源 | 链 接 |\n|---|---|---|\n'; 54 | 55 | for (const source of config.sources) { 56 | const displayName = source.name; 57 | for (const link of source.urls) { 58 | let url = link; 59 | let srcLink = ''; 60 | 61 | if (typeof link === 'object' && link !== null) { 62 | url = link.url; 63 | if (link.src) { 64 | srcLink = `[源](${link.src})`; 65 | } 66 | } 67 | 68 | originalTable += `| ${displayName} | ${srcLink} | ${url} |\n`; 69 | } 70 | } 71 | 72 | const startMarker = ''; 73 | const endMarker = ''; 74 | const newContent = `${startMarker}\n\n${mixedTable}\n${originalTable}\n${endMarker}`; 75 | 76 | if (readmeContent.includes(startMarker) && readmeContent.includes(endMarker)) { 77 | const regex = new RegExp(`${startMarker}[\\s\\S]*?${endMarker}`); 78 | readmeContent = readmeContent.replace(regex, newContent); 79 | } else { 80 | // Try to find old markers to replace if they exist 81 | const oldStart = ''; 82 | const oldEnd = ''; 83 | if (readmeContent.includes(oldStart) && readmeContent.includes(oldEnd)) { 84 | const regex = new RegExp(`${oldStart}[\\s\\S]*?${oldEnd}`); 85 | readmeContent = readmeContent.replace(regex, newContent); 86 | } else { 87 | readmeContent += `\n\n${newContent}`; 88 | } 89 | } 90 | 91 | fs.writeFileSync(readmePath, readmeContent, 'utf8'); 92 | log('README.md updated.'); 93 | } 94 | 95 | if (require.main === module) { 96 | updateReadme(); 97 | } 98 | 99 | module.exports = updateReadme; 100 | -------------------------------------------------------------------------------- /scripts/process-sources.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | const { log, logError, downloadFile, rootDir } = require('./utils'); 4 | const config = require('../config.js'); 5 | 6 | const sourceBaseDir = path.join(rootDir, 'source'); 7 | const distBaseDir = path.join(rootDir, 'dist'); 8 | 9 | function checkFilter(value, filter) { 10 | if (!filter) return true; 11 | if (!value) return false; 12 | 13 | const regexMatch = filter.match(/^\/(.*?)\/([gim]*)$/); 14 | if (regexMatch) { 15 | try { 16 | const regex = new RegExp(regexMatch[1], regexMatch[2]); 17 | return regex.test(value); 18 | } catch (e) { 19 | return false; 20 | } 21 | } 22 | return value.includes(filter); 23 | } 24 | 25 | async function processSources() { 26 | fs.writeFileSync(path.join(rootDir, 'log'), ''); // Clear log file 27 | log('Starting update process...'); 28 | 29 | if (!fs.existsSync(distBaseDir)) { 30 | fs.mkdirSync(distBaseDir, { recursive: true }); 31 | } 32 | 33 | let allMediaSources = []; 34 | const allSeenDomains = new Set(); 35 | 36 | for (const source of config.sources) { 37 | const category = source.tag; 38 | const links = source.urls; 39 | const globalFilter = source.filter; 40 | const globalExcludeFilter = source.excludeFilter; 41 | 42 | log('================================================================================'); 43 | log(`Processing category: ${category} (${source.name})`); 44 | log('================================================================================'); 45 | 46 | const categorySourceDir = path.join(sourceBaseDir, category); 47 | if (!fs.existsSync(categorySourceDir)) { 48 | fs.mkdirSync(categorySourceDir, { recursive: true }); 49 | } 50 | 51 | let mergedMediaSources = []; 52 | const seenDomains = new Set(); 53 | const configuredFiles = new Set(); 54 | 55 | for (const link of links) { 56 | if (typeof link !== 'object' || link === null) { 57 | logError(`Invalid link configuration (must be object): ${JSON.stringify(link)}`); 58 | continue; 59 | } 60 | if (!link.file) { 61 | logError(`Missing 'file' property in link configuration: ${JSON.stringify(link)}`); 62 | continue; 63 | } 64 | 65 | const downloadUrl = link.url; 66 | const fileName = link.file; 67 | const itemFilter = link.filter; 68 | const itemExcludeFilter = link.excludeFilter; 69 | 70 | configuredFiles.add(fileName); 71 | 72 | const filePath = path.join(categorySourceDir, fileName); 73 | let content = ''; 74 | 75 | try { 76 | if (downloadUrl) { 77 | log(`Downloading ${downloadUrl}...`); 78 | content = await downloadFile(downloadUrl); 79 | // 验证是否为有效 JSON 80 | JSON.parse(content); 81 | fs.writeFileSync(filePath, content, 'utf8'); 82 | } else { 83 | // 如果没有 url,尝试直接读取本地文件 84 | if (fs.existsSync(filePath)) { 85 | log(`Using local file: ${fileName}`); 86 | content = fs.readFileSync(filePath, 'utf8'); 87 | } else { 88 | logError(`No URL provided and local file not found: ${fileName}`); 89 | continue; 90 | } 91 | } 92 | } catch (err) { 93 | logError(`Failed to download ${downloadUrl}: ${err.message}`); 94 | if (fs.existsSync(filePath)) { 95 | log(`Using cached file for ${downloadUrl}`); 96 | content = fs.readFileSync(filePath, 'utf8'); 97 | } else { 98 | logError(`No cache available for ${downloadUrl}, skipping.`); 99 | continue; 100 | } 101 | } 102 | 103 | try { 104 | const json = JSON.parse(content); 105 | if (json.exportedMediaSourceDataList && Array.isArray(json.exportedMediaSourceDataList.mediaSources)) { 106 | for (const sourceItem of json.exportedMediaSourceDataList.mediaSources) { 107 | let domain = null; 108 | let searchUrl = null; 109 | try { 110 | searchUrl = sourceItem.arguments?.searchConfig?.searchUrl; 111 | if (searchUrl) { 112 | domain = new URL(searchUrl).hostname; 113 | } 114 | } catch (e) { 115 | // Ignore URL parsing errors 116 | } 117 | 118 | if (globalFilter && !checkFilter(domain, globalFilter)) { 119 | log(`[Filter] Skipped ${sourceItem.arguments?.name} (${domain}) - Global Filter: ${globalFilter}`); 120 | continue; 121 | } 122 | if (itemFilter && !checkFilter(domain, itemFilter)) { 123 | log(`[Filter] Skipped ${sourceItem.arguments?.name} (${domain}) - Item Filter: ${itemFilter}`); 124 | continue; 125 | } 126 | 127 | if (globalExcludeFilter && checkFilter(domain, globalExcludeFilter)) { 128 | log(`[Filter] Skipped ${sourceItem.arguments?.name} (${domain}) - Global Exclude Filter: ${globalExcludeFilter}`); 129 | continue; 130 | } 131 | if (itemExcludeFilter && checkFilter(domain, itemExcludeFilter)) { 132 | log(`[Filter] Skipped ${sourceItem.arguments?.name} (${domain}) - Item Exclude Filter: ${itemExcludeFilter}`); 133 | continue; 134 | } 135 | 136 | // Category level deduplication 137 | let addToCategory = true; 138 | if (domain) { 139 | if (seenDomains.has(domain)) { 140 | log(`Duplicate source skipped in category: ${sourceItem.arguments?.name} (${domain})`); 141 | addToCategory = false; 142 | } else { 143 | seenDomains.add(domain); 144 | } 145 | } 146 | if (addToCategory) { 147 | mergedMediaSources.push(sourceItem); 148 | } 149 | 150 | // Global level deduplication 151 | let addToAll = true; 152 | if (domain) { 153 | if (allSeenDomains.has(domain)) { 154 | // log(`Duplicate source skipped in all: ${sourceItem.arguments?.name} (${domain})`); 155 | addToAll = false; 156 | } else { 157 | allSeenDomains.add(domain); 158 | } 159 | } 160 | if (addToAll) { 161 | allMediaSources.push(sourceItem); 162 | } 163 | } 164 | } 165 | } catch (e) { 166 | logError(`Error parsing JSON from ${link.file}: ${e.message}`); 167 | } 168 | } 169 | 170 | // Clean up unconfigured files 171 | try { 172 | if (fs.existsSync(categorySourceDir)) { 173 | const existingFiles = fs.readdirSync(categorySourceDir); 174 | for (const file of existingFiles) { 175 | if (!configuredFiles.has(file) && file.endsWith('.json')) { 176 | fs.unlinkSync(path.join(categorySourceDir, file)); 177 | log(`Deleted unconfigured file: ${file}`); 178 | } 179 | } 180 | } 181 | } catch (e) { 182 | logError(`Error cleaning up files in ${categorySourceDir}: ${e.message}`); 183 | } 184 | 185 | const distFilePath = path.join(distBaseDir, `${category}.json`); 186 | const result = { 187 | exportedMediaSourceDataList: { 188 | mediaSources: mergedMediaSources 189 | } 190 | }; 191 | 192 | fs.writeFileSync(distFilePath, JSON.stringify(result, null, 2), 'utf8'); 193 | log(`Saved merged file to ${distFilePath}`); 194 | } 195 | 196 | // Save all.json 197 | const allFilePath = path.join(distBaseDir, 'all.json'); 198 | const allResult = { 199 | exportedMediaSourceDataList: { 200 | mediaSources: allMediaSources 201 | } 202 | }; 203 | fs.writeFileSync(allFilePath, JSON.stringify(allResult, null, 2), 'utf8'); 204 | log(`Saved merged file to ${allFilePath}`); 205 | 206 | log('Source processing completed.'); 207 | } 208 | 209 | if (require.main === module) { 210 | processSources().catch(err => { 211 | logError(err); 212 | process.exit(1); 213 | }); 214 | } 215 | 216 | module.exports = processSources; 217 | -------------------------------------------------------------------------------- /source/bt/H.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportedMediaSourceDataList": { 3 | "mediaSources": [ 4 | { 5 | "factoryId": "rss", 6 | "version": 1, 7 | "arguments": { 8 | "name": "nyaa-里", 9 | "description": "H~低调使用~", 10 | "iconUrl": "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/favicon/nyaa.si_H.png", 11 | "searchConfig": { 12 | "searchUrl": "https://sukebei.nyaa.si/?page=rss&q={keyword}&c=0_0&f=0", 13 | "filterByEpisodeSort": true, 14 | "filterBySubjectName": false 15 | } 16 | } 17 | }, 18 | { 19 | "factoryId": "web-selector", 20 | "version": 2, 21 | "arguments": { 22 | "name": "hanime1_1080p", 23 | "description": "H~低调使用 源网站偶尔会开防护 连不上请尝试Tun", 24 | "iconUrl": "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/favicon/hanime1.me_1080.png", 25 | "searchConfig": { 26 | "searchUrl": "https://hanime1.me/search?query={keyword}", 27 | "searchUseOnlyFirstWord": false, 28 | "searchRemoveSpecial": true, 29 | "searchUseSubjectNamesCount": 2, 30 | "rawBaseUrl": "", 31 | "requestInterval": 1233, 32 | "subjectFormatId": "indexed", 33 | "selectorSubjectFormatA": { 34 | "selectLists": "div.home-rows-videos-wrapper a", 35 | "preferShorterName": false 36 | }, 37 | "selectorSubjectFormatIndexed": { 38 | "selectNames": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > div > div > div > div.card-mobile-title", 39 | "selectLinks": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > a", 40 | "preferShorterName": true 41 | }, 42 | "channelFormatId": "index-grouped", 43 | "selectorChannelFormatFlattened": { 44 | "selectChannelNames": "#video-artist-name", 45 | "matchChannelName": "", 46 | "selectEpisodeLists": "#playlist-scroll", 47 | "selectEpisodesFromList": "div.related-watch-wrap .card-mobile-title", 48 | "selectEpisodeLinksFromList": "#playlist-scroll > div.related-watch-wrap > a", 49 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 50 | }, 51 | "selectorChannelFormatNoChannel": { 52 | "selectEpisodes": "#playlist-scroll > div.related-watch-wrap .card-mobile-title", 53 | "selectEpisodeLinks": "#playlist-scroll > div.related-watch-wrap > a", 54 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 55 | }, 56 | "defaultResolution": "1080P", 57 | "filterByEpisodeSort": false, 58 | "filterBySubjectName": false, 59 | "selectMedia":{ 60 | "distinguishSubjectName":false, 61 | "distinguishChannelName":false 62 | }, 63 | "matchVideo": { 64 | "enableNestedUrl": true, 65 | "matchNestedUrl": "^(?=.*(index))(?=.*(1080|720|480)).*?(m3u8|mp4|vip|xigua\\.php).*", 66 | "matchVideoUrl": "(?https?:\\/\\/(?:[^\\/]*\\.)?(vdownload|abre-videos|xvideos).*?(1080).*\\.(m3u8|mp4|vip|xigua\\.php)(?:\\?.+)?)", 67 | "cookies": "quality=1080", 68 | "addHeadersToVideo": { 69 | "referer": "", 70 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 71 | } 72 | } 73 | } 74 | } 75 | }, 76 | { 77 | "factoryId": "web-selector", 78 | "version": 2, 79 | "arguments": { 80 | "name": "hanime1_720p", 81 | "description": "1080放不出来用这个(说明无1080p)", 82 | "iconUrl": "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/favicon/hanime1.me_720.png", 83 | "searchConfig": { 84 | "searchUrl": "https://hanime1.me/search?query={keyword}", 85 | "searchUseOnlyFirstWord": false, 86 | "searchRemoveSpecial": true, 87 | "searchUseSubjectNamesCount": 2, 88 | "rawBaseUrl": "", 89 | "requestInterval": 1233, 90 | "subjectFormatId": "indexed", 91 | "selectorSubjectFormatA": { 92 | "selectLists": "div.home-rows-videos-wrapper a", 93 | "preferShorterName": false 94 | }, 95 | "selectorSubjectFormatIndexed": { 96 | "selectNames": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > div > div > div > div.card-mobile-title", 97 | "selectLinks": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > a", 98 | "preferShorterName": true 99 | }, 100 | "channelFormatId": "index-grouped", 101 | "selectorChannelFormatFlattened": { 102 | "selectChannelNames": "#video-artist-name", 103 | "matchChannelName": "", 104 | "selectEpisodeLists": "#playlist-scroll", 105 | "selectEpisodesFromList": "div.related-watch-wrap .card-mobile-title", 106 | "selectEpisodeLinksFromList": "#playlist-scroll > div.related-watch-wrap > a", 107 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 108 | }, 109 | "selectorChannelFormatNoChannel": { 110 | "selectEpisodes": "#playlist-scroll > div.related-watch-wrap .card-mobile-title", 111 | "selectEpisodeLinks": "#playlist-scroll > div.related-watch-wrap > a", 112 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 113 | }, 114 | "defaultResolution": "720P", 115 | "filterByEpisodeSort": false, 116 | "filterBySubjectName": false, 117 | "selectMedia":{ 118 | "distinguishSubjectName":false, 119 | "distinguishChannelName":false 120 | }, 121 | "matchVideo": { 122 | "enableNestedUrl": true, 123 | "matchNestedUrl": "^(?=.*(index))(?=.*(1080|720|480)).*?(m3u8|mp4|vip|xigua\\.php).*", 124 | "matchVideoUrl": "(?https?:\\/\\/(?:[^\\/]*\\.)?(vdownload|abre-videos|xvideos).*?(1080|720|480).*\\.(m3u8|mp4|vip|xigua\\.php)(?:\\?.+)?)", 125 | "cookies": "quality=720", 126 | "addHeadersToVideo": { 127 | "referer": "", 128 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 129 | } 130 | } 131 | } 132 | } 133 | }, 134 | { 135 | "factoryId": "web-selector", 136 | "version": 2, 137 | "arguments": { 138 | "name": "hanime1_one.me", 139 | "description": "或许可以直连", 140 | "iconUrl": "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/favicon/hanime1.me_720.png", 141 | "searchConfig": { 142 | "searchUrl": "https://hanimeone.me/search?query={keyword}", 143 | "searchUseOnlyFirstWord": false, 144 | "searchRemoveSpecial": true, 145 | "searchUseSubjectNamesCount": 2, 146 | "rawBaseUrl": "", 147 | "requestInterval": 1233, 148 | "subjectFormatId": "indexed", 149 | "selectorSubjectFormatA": { 150 | "selectLists": "div.home-rows-videos-wrapper a", 151 | "preferShorterName": false 152 | }, 153 | "selectorSubjectFormatIndexed": { 154 | "selectNames": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > div > div > div > div.card-mobile-title", 155 | "selectLinks": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > a", 156 | "preferShorterName": true 157 | }, 158 | "channelFormatId": "index-grouped", 159 | "selectorChannelFormatFlattened": { 160 | "selectChannelNames": "#video-artist-name", 161 | "matchChannelName": "", 162 | "selectEpisodeLists": "#playlist-scroll", 163 | "selectEpisodesFromList": "div.related-watch-wrap .card-mobile-title", 164 | "selectEpisodeLinksFromList": "#playlist-scroll > div.related-watch-wrap > a", 165 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 166 | }, 167 | "selectorChannelFormatNoChannel": { 168 | "selectEpisodes": "#playlist-scroll > div.related-watch-wrap .card-mobile-title", 169 | "selectEpisodeLinks": "#playlist-scroll > div.related-watch-wrap > a", 170 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 171 | }, 172 | "defaultResolution": "720P", 173 | "filterByEpisodeSort": false, 174 | "filterBySubjectName": false, 175 | "selectMedia":{ 176 | "distinguishSubjectName":false, 177 | "distinguishChannelName":false 178 | }, 179 | "matchVideo": { 180 | "enableNestedUrl": true, 181 | "matchNestedUrl": "^(?=.*(index))(?=.*(1080|720|480)).*?(m3u8|mp4|vip|xigua\\.php).*", 182 | "matchVideoUrl": "(?https?:\\/\\/(?:[^\\/]*\\.)?(vdownload|abre-videos|xvideos).*?(1080|720|480).*\\.(m3u8|mp4|vip|xigua\\.php)(?:\\?.+)?)", 183 | "cookies": "quality=720", 184 | "addHeadersToVideo": { 185 | "referer": "", 186 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 187 | } 188 | } 189 | } 190 | } 191 | } 192 | ] 193 | } 194 | } 195 | 196 | -------------------------------------------------------------------------------- /source/online/H.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportedMediaSourceDataList": { 3 | "mediaSources": [ 4 | { 5 | "factoryId": "rss", 6 | "version": 1, 7 | "arguments": { 8 | "name": "nyaa-里", 9 | "description": "H~低调使用~", 10 | "iconUrl": "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/favicon/nyaa.si_H.png", 11 | "searchConfig": { 12 | "searchUrl": "https://sukebei.nyaa.si/?page=rss&q={keyword}&c=0_0&f=0", 13 | "filterByEpisodeSort": true, 14 | "filterBySubjectName": false 15 | } 16 | } 17 | }, 18 | { 19 | "factoryId": "web-selector", 20 | "version": 2, 21 | "arguments": { 22 | "name": "hanime1_1080p", 23 | "description": "H~低调使用 源网站偶尔会开防护 连不上请尝试Tun", 24 | "iconUrl": "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/favicon/hanime1.me_1080.png", 25 | "searchConfig": { 26 | "searchUrl": "https://hanime1.me/search?query={keyword}", 27 | "searchUseOnlyFirstWord": false, 28 | "searchRemoveSpecial": true, 29 | "searchUseSubjectNamesCount": 2, 30 | "rawBaseUrl": "", 31 | "requestInterval": 1233, 32 | "subjectFormatId": "indexed", 33 | "selectorSubjectFormatA": { 34 | "selectLists": "div.home-rows-videos-wrapper a", 35 | "preferShorterName": false 36 | }, 37 | "selectorSubjectFormatIndexed": { 38 | "selectNames": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > div > div > div > div.card-mobile-title", 39 | "selectLinks": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > a", 40 | "preferShorterName": true 41 | }, 42 | "channelFormatId": "index-grouped", 43 | "selectorChannelFormatFlattened": { 44 | "selectChannelNames": "#video-artist-name", 45 | "matchChannelName": "", 46 | "selectEpisodeLists": "#playlist-scroll", 47 | "selectEpisodesFromList": "div.related-watch-wrap .card-mobile-title", 48 | "selectEpisodeLinksFromList": "#playlist-scroll > div.related-watch-wrap > a", 49 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 50 | }, 51 | "selectorChannelFormatNoChannel": { 52 | "selectEpisodes": "#playlist-scroll > div.related-watch-wrap .card-mobile-title", 53 | "selectEpisodeLinks": "#playlist-scroll > div.related-watch-wrap > a", 54 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 55 | }, 56 | "defaultResolution": "1080P", 57 | "filterByEpisodeSort": false, 58 | "filterBySubjectName": false, 59 | "selectMedia":{ 60 | "distinguishSubjectName":false, 61 | "distinguishChannelName":false 62 | }, 63 | "matchVideo": { 64 | "enableNestedUrl": true, 65 | "matchNestedUrl": "^(?=.*(index))(?=.*(1080|720|480)).*?(m3u8|mp4|vip|xigua\\.php).*", 66 | "matchVideoUrl": "(?https?:\\/\\/(?:[^\\/]*\\.)?(vdownload|abre-videos|xvideos).*?(1080).*\\.(m3u8|mp4|vip|xigua\\.php)(?:\\?.+)?)", 67 | "cookies": "quality=1080", 68 | "addHeadersToVideo": { 69 | "referer": "", 70 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 71 | } 72 | } 73 | } 74 | } 75 | }, 76 | { 77 | "factoryId": "web-selector", 78 | "version": 2, 79 | "arguments": { 80 | "name": "hanime1_720p", 81 | "description": "1080放不出来用这个(说明无1080p)", 82 | "iconUrl": "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/favicon/hanime1.me_720.png", 83 | "searchConfig": { 84 | "searchUrl": "https://hanime1.me/search?query={keyword}", 85 | "searchUseOnlyFirstWord": false, 86 | "searchRemoveSpecial": true, 87 | "searchUseSubjectNamesCount": 2, 88 | "rawBaseUrl": "", 89 | "requestInterval": 1233, 90 | "subjectFormatId": "indexed", 91 | "selectorSubjectFormatA": { 92 | "selectLists": "div.home-rows-videos-wrapper a", 93 | "preferShorterName": false 94 | }, 95 | "selectorSubjectFormatIndexed": { 96 | "selectNames": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > div > div > div > div.card-mobile-title", 97 | "selectLinks": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > a", 98 | "preferShorterName": true 99 | }, 100 | "channelFormatId": "index-grouped", 101 | "selectorChannelFormatFlattened": { 102 | "selectChannelNames": "#video-artist-name", 103 | "matchChannelName": "", 104 | "selectEpisodeLists": "#playlist-scroll", 105 | "selectEpisodesFromList": "div.related-watch-wrap .card-mobile-title", 106 | "selectEpisodeLinksFromList": "#playlist-scroll > div.related-watch-wrap > a", 107 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 108 | }, 109 | "selectorChannelFormatNoChannel": { 110 | "selectEpisodes": "#playlist-scroll > div.related-watch-wrap .card-mobile-title", 111 | "selectEpisodeLinks": "#playlist-scroll > div.related-watch-wrap > a", 112 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 113 | }, 114 | "defaultResolution": "720P", 115 | "filterByEpisodeSort": false, 116 | "filterBySubjectName": false, 117 | "selectMedia":{ 118 | "distinguishSubjectName":false, 119 | "distinguishChannelName":false 120 | }, 121 | "matchVideo": { 122 | "enableNestedUrl": true, 123 | "matchNestedUrl": "^(?=.*(index))(?=.*(1080|720|480)).*?(m3u8|mp4|vip|xigua\\.php).*", 124 | "matchVideoUrl": "(?https?:\\/\\/(?:[^\\/]*\\.)?(vdownload|abre-videos|xvideos).*?(1080|720|480).*\\.(m3u8|mp4|vip|xigua\\.php)(?:\\?.+)?)", 125 | "cookies": "quality=720", 126 | "addHeadersToVideo": { 127 | "referer": "", 128 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 129 | } 130 | } 131 | } 132 | } 133 | }, 134 | { 135 | "factoryId": "web-selector", 136 | "version": 2, 137 | "arguments": { 138 | "name": "hanime1_one.me", 139 | "description": "或许可以直连", 140 | "iconUrl": "https://gitee.com/wan0ge/extract-pure-links/raw/Ani_Pages/favicon/hanime1.me_720.png", 141 | "searchConfig": { 142 | "searchUrl": "https://hanimeone.me/search?query={keyword}", 143 | "searchUseOnlyFirstWord": false, 144 | "searchRemoveSpecial": true, 145 | "searchUseSubjectNamesCount": 2, 146 | "rawBaseUrl": "", 147 | "requestInterval": 1233, 148 | "subjectFormatId": "indexed", 149 | "selectorSubjectFormatA": { 150 | "selectLists": "div.home-rows-videos-wrapper a", 151 | "preferShorterName": false 152 | }, 153 | "selectorSubjectFormatIndexed": { 154 | "selectNames": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > div > div > div > div.card-mobile-title", 155 | "selectLinks": "#home-rows-wrapper > div.content-padding-new > div > div.col-xs-12.search-doujin-videos.hidden-sm.hidden-md.hidden-lg.hidden-xl.hover-lighter.multiple-link-wrapper > a", 156 | "preferShorterName": true 157 | }, 158 | "channelFormatId": "index-grouped", 159 | "selectorChannelFormatFlattened": { 160 | "selectChannelNames": "#video-artist-name", 161 | "matchChannelName": "", 162 | "selectEpisodeLists": "#playlist-scroll", 163 | "selectEpisodesFromList": "div.related-watch-wrap .card-mobile-title", 164 | "selectEpisodeLinksFromList": "#playlist-scroll > div.related-watch-wrap > a", 165 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 166 | }, 167 | "selectorChannelFormatNoChannel": { 168 | "selectEpisodes": "#playlist-scroll > div.related-watch-wrap .card-mobile-title", 169 | "selectEpisodeLinks": "#playlist-scroll > div.related-watch-wrap > a", 170 | "matchEpisodeSortFromName": "(?(?:SP\\s\\d+|\\d+))" 171 | }, 172 | "defaultResolution": "720P", 173 | "filterByEpisodeSort": false, 174 | "filterBySubjectName": false, 175 | "selectMedia":{ 176 | "distinguishSubjectName":false, 177 | "distinguishChannelName":false 178 | }, 179 | "matchVideo": { 180 | "enableNestedUrl": true, 181 | "matchNestedUrl": "^(?=.*(index))(?=.*(1080|720|480)).*?(m3u8|mp4|vip|xigua\\.php).*", 182 | "matchVideoUrl": "(?https?:\\/\\/(?:[^\\/]*\\.)?(vdownload|abre-videos|xvideos).*?(1080|720|480).*\\.(m3u8|mp4|vip|xigua\\.php)(?:\\?.+)?)", 183 | "cookies": "quality=720", 184 | "addHeadersToVideo": { 185 | "referer": "", 186 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 187 | } 188 | } 189 | } 190 | } 191 | } 192 | ] 193 | } 194 | } 195 | 196 | -------------------------------------------------------------------------------- /source/online/css.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportedMediaSourceDataList": { 3 | "mediaSources": [ 4 | { 5 | "factoryId": "web-selector", 6 | "version": 2, 7 | "arguments": { 8 | "name": "次元城动画", 9 | "description": "", 10 | "iconUrl": "https://www.cycani.org/upload/site/20240319-1/25e700991446a527804c82a744731b60.png", 11 | "searchConfig": { 12 | "searchUrl": "https://www.cycani.org/search.html?wd={keyword}", 13 | "searchUseOnlyFirstWord": true, 14 | "searchRemoveSpecial": true, 15 | "searchUseSubjectNamesCount": 1, 16 | "rawBaseUrl": "", 17 | "requestInterval": 3000, 18 | "subjectFormatId": "indexed", 19 | "selectorSubjectFormatA": { 20 | "selectLists": ".module-main .module-items .module-card-item-info a", 21 | "preferShorterName": true 22 | }, 23 | "selectorSubjectFormatIndexed": { 24 | "selectNames": ".search-box .thumb-content > .thumb-txt", 25 | "selectLinks": ".search-box .thumb-menu > a", 26 | "preferShorterName": true 27 | }, 28 | "selectorSubjectFormatJsonPathIndexed": { 29 | "selectLinks": "$[*]['url', 'link']", 30 | "selectNames": "$[*]['title','name']", 31 | "preferShorterName": true 32 | }, 33 | "channelFormatId": "index-grouped", 34 | "selectorChannelFormatFlattened": { 35 | "selectChannelNames": ".anthology-tab a", 36 | "matchChannelName": "^(?.+?(\\d+)?)$", 37 | "selectEpisodeLists": ".anthology-list-play", 38 | "selectEpisodesFromList": "a", 39 | "selectEpisodeLinksFromList": "", 40 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 41 | }, 42 | "selectorChannelFormatNoChannel": { 43 | "selectEpisodes": "#y-playList", 44 | "selectEpisodeLinks": "", 45 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 46 | }, 47 | "defaultResolution": "1080P", 48 | "defaultSubtitleLanguage": "CHS", 49 | "onlySupportsPlayers": [ 50 | "exoplayer", 51 | "avkit" 52 | ], 53 | "filterByEpisodeSort": true, 54 | "filterBySubjectName": true, 55 | "selectMedia": { 56 | "distinguishSubjectName": true, 57 | "distinguishChannelName": true 58 | }, 59 | "matchVideo": { 60 | "enableNestedUrl": true, 61 | "matchNestedUrl": "(^.+(m3u8|vip|xigua\\.php).+\\?)|(.+player.cycanime.com/\\?url=.+)", 62 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+(url=)?((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 63 | "cookies": "quality=1080", 64 | "addHeadersToVideo": { 65 | "referer": "", 66 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 67 | } 68 | } 69 | }, 70 | "tier": 1 71 | } 72 | }, 73 | { 74 | "factoryId": "web-selector", 75 | "version": 2, 76 | "arguments": { 77 | "name": "Aki动漫", 78 | "description": "", 79 | "iconUrl": "https://www.akianime.cc/upload/site/20240724-1/7f46ba6cb9f9cb4bf9428e6a5d8f3640.jpeg", 80 | "searchConfig": { 81 | "searchUrl": "https://www.akianime.cc/index.php/vod/search.html?wd={keyword}", 82 | "searchUseOnlyFirstWord": true, 83 | "searchRemoveSpecial": true, 84 | "rawBaseUrl": "", 85 | "subjectFormatId": "indexed", 86 | "selectorSubjectFormatA": { 87 | "selectLists": "div.video-info-header > a", 88 | "preferShorterName": true 89 | }, 90 | "selectorSubjectFormatIndexed": { 91 | "selectNames": "body > div.box-width > div > div.row-9 > div > div > div.right.rel.flex-auto > div.thumb-content > div.thumb-txt", 92 | "selectLinks": "body > div.box-width > div > div.row-9 > div > div > div.left.public-list-bj > a", 93 | "preferShorterName": true 94 | }, 95 | "selectorSubjectFormatJsonPathIndexed": { 96 | "selectLinks": "$[*]['url', 'link']", 97 | "selectNames": "$[*]['title','name']", 98 | "preferShorterName": true 99 | }, 100 | "channelFormatId": "index-grouped", 101 | "selectorChannelFormatFlattened": { 102 | "selectChannelNames": ".anthology-tab > div.swiper-wrapper > a", 103 | "matchChannelName": "^(?.+?)(\\d+)?$", 104 | "selectEpisodeLists": ".anthology-list-box", 105 | "selectEpisodesFromList": "a", 106 | "selectEpisodeLinksFromList": "", 107 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 108 | }, 109 | "selectorChannelFormatNoChannel": { 110 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 111 | "selectEpisodeLinks": "", 112 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 113 | }, 114 | "filterByEpisodeSort": true, 115 | "filterBySubjectName": true, 116 | "selectMedia": { 117 | "distinguishSubjectName": true, 118 | "distinguishChannelName": true 119 | }, 120 | "matchVideo": { 121 | "enableNestedUrl": true, 122 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 123 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(.+if=1&url=(?.+))", 124 | "cookies": "quality=1080", 125 | "addHeadersToVideo": { 126 | "referer": "", 127 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 128 | } 129 | } 130 | } 131 | } 132 | }, 133 | { 134 | "factoryId": "web-selector", 135 | "version": 2, 136 | "arguments": { 137 | "name": "第一动漫", 138 | "description": "", 139 | "iconUrl": "https://anime.d1dm.xyz/template/conch/asset/img/favicon1.png", 140 | "searchConfig": { 141 | "searchUrl": "https://anime.d1dm.xyz/vodsearch/-------------.html?wd={keyword}", 142 | "searchUseOnlyFirstWord": true, 143 | "searchRemoveSpecial": true, 144 | "rawBaseUrl": "", 145 | "subjectFormatId": "a", 146 | "selectorSubjectFormatA": { 147 | "selectLists": "div.video-info-header > a", 148 | "preferShorterName": true 149 | }, 150 | "selectorSubjectFormatIndexed": { 151 | "selectNames": ".search-box .thumb-content > .thumb-txt", 152 | "selectLinks": ".search-box .thumb-menu > a", 153 | "preferShorterName": true 154 | }, 155 | "selectorSubjectFormatJsonPathIndexed": { 156 | "selectLinks": "$[*]['url', 'link']", 157 | "selectNames": "$[*]['title','name']", 158 | "preferShorterName": true 159 | }, 160 | "channelFormatId": "index-grouped", 161 | "selectorChannelFormatFlattened": { 162 | "selectChannelNames": "div.module-tab-item > span", 163 | "matchChannelName": "^(?.+?)(\\d+)?$", 164 | "selectEpisodeLists": ".module-list.module-player-list", 165 | "selectEpisodesFromList": "a", 166 | "selectEpisodeLinksFromList": "", 167 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 168 | }, 169 | "selectorChannelFormatNoChannel": { 170 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 171 | "selectEpisodeLinks": "", 172 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 173 | }, 174 | "filterByEpisodeSort": true, 175 | "filterBySubjectName": true, 176 | "selectMedia": { 177 | "distinguishSubjectName": true, 178 | "distinguishChannelName": true 179 | }, 180 | "matchVideo": { 181 | "enableNestedUrl": true, 182 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 183 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 184 | "cookies": "quality=1080", 185 | "addHeadersToVideo": { 186 | "referer": "", 187 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 188 | } 189 | } 190 | } 191 | } 192 | }, 193 | { 194 | "factoryId": "web-selector", 195 | "version": 2, 196 | "arguments": { 197 | "name": "异世界动漫", 198 | "description": "", 199 | "iconUrl": "https://www.dmmiku.com/template/conch/asset/img/favicon.png", 200 | "searchConfig": { 201 | "searchUrl": "https://www.dmmiku.com/index.php/vod/search.html?wd={keyword}&submit=", 202 | "searchUseOnlyFirstWord": true, 203 | "rawBaseUrl": "", 204 | "subjectFormatId": "a", 205 | "selectorSubjectFormatA": { 206 | "selectLists": "body > div.container > div.left_row.fl > div.pannel.search_box.clearfix > ul.vodlist.clearfix > li > div.searchlist_img > a", 207 | "preferShorterName": true 208 | }, 209 | "selectorSubjectFormatIndexed": { 210 | "selectNames": ".search-box .thumb-content > .thumb-txt", 211 | "selectLinks": ".search-box .thumb-menu > a", 212 | "preferShorterName": true 213 | }, 214 | "selectorSubjectFormatJsonPathIndexed": { 215 | "selectLinks": "$[*]['url', 'link']", 216 | "selectNames": "$[*]['title','name']", 217 | "preferShorterName": true 218 | }, 219 | "channelFormatId": "index-grouped", 220 | "selectorChannelFormatFlattened": { 221 | "selectChannelNames": "#NumTab > a", 222 | "matchChannelName": "^(?.+?)(\\d+)?$", 223 | "selectEpisodeLists": "#playlistbox", 224 | "selectEpisodesFromList": "a", 225 | "selectEpisodeLinksFromList": "", 226 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 227 | }, 228 | "selectorChannelFormatNoChannel": { 229 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 230 | "selectEpisodeLinks": "", 231 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 232 | }, 233 | "filterByEpisodeSort": true, 234 | "filterBySubjectName": true, 235 | "selectMedia": { 236 | "distinguishSubjectName": true, 237 | "distinguishChannelName": true 238 | }, 239 | "matchVideo": { 240 | "enableNestedUrl": true, 241 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 242 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 243 | "cookies": "quality=1080", 244 | "addHeadersToVideo": { 245 | "referer": "", 246 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 247 | } 248 | } 249 | } 250 | } 251 | }, 252 | { 253 | "factoryId": "web-selector", 254 | "version": 2, 255 | "arguments": { 256 | "name": "爱看番", 257 | "description": "", 258 | "iconUrl": "https://www.ikfan.com/upload/site/20240929-1/2edd907464ad7ec3f4bbc899cb5386b7.png", 259 | "searchConfig": { 260 | "searchUrl": "https://www.ikfan.com/vodsearch/-------------.html?wd={keyword}", 261 | "searchUseOnlyFirstWord": true, 262 | "searchRemoveSpecial": true, 263 | "rawBaseUrl": "", 264 | "subjectFormatId": "indexed", 265 | "selectorSubjectFormatA": { 266 | "selectLists": "div.video-info-header > a", 267 | "preferShorterName": true 268 | }, 269 | "selectorSubjectFormatIndexed": { 270 | "selectNames": ".search-box .thumb-content > .thumb-txt", 271 | "selectLinks": ".search-box .thumb-menu > a", 272 | "preferShorterName": true 273 | }, 274 | "selectorSubjectFormatJsonPathIndexed": { 275 | "selectLinks": "$[*]['url', 'link']", 276 | "selectNames": "$[*]['title','name']", 277 | "preferShorterName": true 278 | }, 279 | "channelFormatId": "index-grouped", 280 | "selectorChannelFormatFlattened": { 281 | "selectChannelNames": ".anthology-tab > .swiper-wrapper a", 282 | "matchChannelName": "^(?.+?)(\\d+)?$", 283 | "selectEpisodeLists": ".anthology-list-box", 284 | "selectEpisodesFromList": "a", 285 | "selectEpisodeLinksFromList": "", 286 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 287 | }, 288 | "selectorChannelFormatNoChannel": { 289 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 290 | "selectEpisodeLinks": "", 291 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 292 | }, 293 | "filterByEpisodeSort": true, 294 | "filterBySubjectName": true, 295 | "selectMedia": { 296 | "distinguishSubjectName": true, 297 | "distinguishChannelName": true 298 | }, 299 | "matchVideo": { 300 | "enableNestedUrl": true, 301 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 302 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 303 | "cookies": "quality=1080", 304 | "addHeadersToVideo": { 305 | "referer": "", 306 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 307 | } 308 | } 309 | } 310 | } 311 | }, 312 | { 313 | "factoryId": "web-selector", 314 | "version": 2, 315 | "arguments": { 316 | "name": "漫岛", 317 | "description": "", 318 | "iconUrl": "https://www.imandaow.com/favicon.ico", 319 | "searchConfig": { 320 | "searchUrl": "https://www.imandaow.com/search/{keyword}", 321 | "searchUseOnlyFirstWord": true, 322 | "rawBaseUrl": "", 323 | "subjectFormatId": "a", 324 | "selectorSubjectFormatA": { 325 | "selectLists": "body > div.wrap > div.index-tj.mb.clearfix > ul > li > a", 326 | "preferShorterName": true 327 | }, 328 | "selectorSubjectFormatIndexed": { 329 | "selectNames": ".search-box .thumb-content > .thumb-txt", 330 | "selectLinks": ".search-box .thumb-menu > a", 331 | "preferShorterName": true 332 | }, 333 | "selectorSubjectFormatJsonPathIndexed": { 334 | "selectLinks": "$[*]['url', 'link']", 335 | "selectNames": "$[*]['title','name']", 336 | "preferShorterName": true 337 | }, 338 | "channelFormatId": "no-channel", 339 | "selectorChannelFormatFlattened": { 340 | "selectChannelNames": ".anthology-tab > .swiper-wrapper a", 341 | "matchChannelName": "^(?.+?)(\\d+)?$", 342 | "selectEpisodeLists": ".anthology-list-box", 343 | "selectEpisodesFromList": "a", 344 | "selectEpisodeLinksFromList": "", 345 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 346 | }, 347 | "selectorChannelFormatNoChannel": { 348 | "selectEpisodes": "#stab_1_71 > ul > li > a", 349 | "selectEpisodeLinks": "", 350 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 351 | }, 352 | "filterByEpisodeSort": true, 353 | "filterBySubjectName": true, 354 | "selectMedia": { 355 | "distinguishSubjectName": true, 356 | "distinguishChannelName": true 357 | }, 358 | "matchVideo": { 359 | "enableNestedUrl": true, 360 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 361 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(\\.m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 362 | "cookies": "quality=1080", 363 | "addHeadersToVideo": { 364 | "referer": "", 365 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 366 | } 367 | } 368 | } 369 | } 370 | }, 371 | { 372 | "factoryId": "web-selector", 373 | "version": 2, 374 | "arguments": { 375 | "name": "kimivod", 376 | "description": "", 377 | "iconUrl": "https://kimivod.com/apple-touch-icon.png", 378 | "searchConfig": { 379 | "searchUrl": "https://cn.kimivod.com/search.php?searchword={keyword}", 380 | "searchUseOnlyFirstWord": true, 381 | "searchRemoveSpecial": true, 382 | "rawBaseUrl": "", 383 | "subjectFormatId": "a", 384 | "selectorSubjectFormatA": { 385 | "selectLists": "#searchList > li > div.detail > h4 > a", 386 | "preferShorterName": true 387 | }, 388 | "selectorSubjectFormatIndexed": { 389 | "selectNames": ".play_some", 390 | "selectLinks": "#some_drama > div > a", 391 | "preferShorterName": true 392 | }, 393 | "selectorSubjectFormatJsonPathIndexed": { 394 | "selectLinks": "$[*]['url', 'link']", 395 | "selectNames": "$[*]['title','name']", 396 | "preferShorterName": true 397 | }, 398 | "channelFormatId": "index-grouped", 399 | "selectorChannelFormatFlattened": { 400 | "selectChannelNames": "body > main > div.tabs > a", 401 | "matchChannelName": "^(?.+?)(\\d+)?$", 402 | "selectEpisodeLists": ".playno", 403 | "selectEpisodesFromList": "a", 404 | "selectEpisodeLinksFromList": "", 405 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 406 | }, 407 | "selectorChannelFormatNoChannel": { 408 | "selectEpisodes": ".anthology a", 409 | "selectEpisodeLinks": "", 410 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 411 | }, 412 | "filterByEpisodeSort": true, 413 | "filterBySubjectName": true, 414 | "selectMedia": { 415 | "distinguishSubjectName": true, 416 | "distinguishChannelName": true 417 | }, 418 | "matchVideo": { 419 | "enableNestedUrl": true, 420 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 421 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 422 | "cookies": "quality=1080", 423 | "addHeadersToVideo": { 424 | "referer": "", 425 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 426 | } 427 | } 428 | } 429 | } 430 | }, 431 | { 432 | "factoryId": "web-selector", 433 | "version": 2, 434 | "arguments": { 435 | "name": "路漫漫", 436 | "description": "", 437 | "iconUrl": "https://www.lmm68.com/template/jable/statics/icon/apple-touch-icon.png", 438 | "searchConfig": { 439 | "searchUrl": "https://www.lmm68.com/vod/search.html?wd={keyword}", 440 | "searchUseOnlyFirstWord": true, 441 | "searchRemoveSpecial": true, 442 | "rawBaseUrl": "", 443 | "subjectFormatId": "a", 444 | "selectorSubjectFormatA": { 445 | "selectLists": "div.detail > h6 > a", 446 | "preferShorterName": true 447 | }, 448 | "selectorSubjectFormatIndexed": { 449 | "selectNames": ".search-box .thumb-content > .thumb-txt", 450 | "selectLinks": ".search-box .thumb-menu > a", 451 | "preferShorterName": true 452 | }, 453 | "selectorSubjectFormatJsonPathIndexed": { 454 | "selectLinks": "$[*]['url', 'link']", 455 | "selectNames": "$[*]['title','name']", 456 | "preferShorterName": true 457 | }, 458 | "channelFormatId": "index-grouped", 459 | "selectorChannelFormatFlattened": { 460 | "selectChannelNames": "div.module-tab-content > div.module-tab-item > span", 461 | "matchChannelName": "^(?.+?)(\\d+)?$", 462 | "selectEpisodeLists": " div.module-list.module-player-list", 463 | "selectEpisodesFromList": "a", 464 | "selectEpisodeLinksFromList": "", 465 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 466 | }, 467 | "selectorChannelFormatNoChannel": { 468 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 469 | "selectEpisodeLinks": "", 470 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 471 | }, 472 | "filterByEpisodeSort": true, 473 | "filterBySubjectName": true, 474 | "selectMedia": { 475 | "distinguishSubjectName": true, 476 | "distinguishChannelName": true 477 | }, 478 | "matchVideo": { 479 | "enableNestedUrl": true, 480 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 481 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(bdxiguavod)", 482 | "cookies": "quality=1080", 483 | "addHeadersToVideo": { 484 | "referer": "", 485 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 486 | } 487 | } 488 | } 489 | } 490 | }, 491 | { 492 | "factoryId": "web-selector", 493 | "version": 2, 494 | "arguments": { 495 | "name": "MX动漫(mxdmp)", 496 | "description": "", 497 | "iconUrl": "https://www.mxdmp.com/favicon.ico", 498 | "searchConfig": { 499 | "searchUrl": "https://www.mxdmp.com/search/-------------/?wd={keyword}&submit=", 500 | "searchUseOnlyFirstWord": true, 501 | "searchRemoveSpecial": true, 502 | "rawBaseUrl": "", 503 | "subjectFormatId": "a", 504 | "selectorSubjectFormatA": { 505 | "selectLists": ".hl-item-title > a", 506 | "preferShorterName": true 507 | }, 508 | "selectorSubjectFormatIndexed": { 509 | "selectNames": ".search-box .thumb-content > .thumb-txt", 510 | "selectLinks": ".search-box .thumb-menu > a", 511 | "preferShorterName": true 512 | }, 513 | "selectorSubjectFormatJsonPathIndexed": { 514 | "selectLinks": "$[*]['url', 'link']", 515 | "selectNames": "$[*]['title','name']", 516 | "preferShorterName": true 517 | }, 518 | "channelFormatId": "index-grouped", 519 | "selectorChannelFormatFlattened": { 520 | "selectChannelNames": "#playlist > div.hl-play-source.hl-hidden > div.hl-plays-wrap.hl-tabs-swiper > div > a", 521 | "matchChannelName": "^(?.+?)(\\d+)?$", 522 | "selectEpisodeLists": ".hl-tabs-box", 523 | "selectEpisodesFromList": "a", 524 | "selectEpisodeLinksFromList": "", 525 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 526 | }, 527 | "selectorChannelFormatNoChannel": { 528 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 529 | "selectEpisodeLinks": "", 530 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 531 | }, 532 | "filterByEpisodeSort": true, 533 | "filterBySubjectName": true, 534 | "selectMedia": { 535 | "distinguishSubjectName": true, 536 | "distinguishChannelName": true 537 | }, 538 | "matchVideo": { 539 | "enableNestedUrl": true, 540 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 541 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 542 | "cookies": "quality=1080", 543 | "addHeadersToVideo": { 544 | "referer": "", 545 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 546 | } 547 | } 548 | } 549 | } 550 | }, 551 | { 552 | "factoryId": "web-selector", 553 | "version": 2, 554 | "arguments": { 555 | "name": "思思动漫", 556 | "description": "", 557 | "iconUrl": "https://www.sisidm.com/favicon.ico", 558 | "searchConfig": { 559 | "searchUrl": "https://www.sisidm.com/search/-------------/?wd={keyword}", 560 | "searchUseOnlyFirstWord": true, 561 | "searchRemoveSpecial": true, 562 | "rawBaseUrl": "", 563 | "subjectFormatId": "a", 564 | "selectorSubjectFormatA": { 565 | "selectLists": ".hl-item-title > a", 566 | "preferShorterName": true 567 | }, 568 | "selectorSubjectFormatIndexed": { 569 | "selectNames": ".search-box .thumb-content > .thumb-txt", 570 | "selectLinks": ".search-box .thumb-menu > a", 571 | "preferShorterName": true 572 | }, 573 | "selectorSubjectFormatJsonPathIndexed": { 574 | "selectLinks": "$[*]['url', 'link']", 575 | "selectNames": "$[*]['title','name']", 576 | "preferShorterName": true 577 | }, 578 | "channelFormatId": "index-grouped", 579 | "selectorChannelFormatFlattened": { 580 | "selectChannelNames": ".hl-plays-from > a", 581 | "matchChannelName": "^(?.+?)(\\d+)?$", 582 | "selectEpisodeLists": ".hl-tabs-box", 583 | "selectEpisodesFromList": "a", 584 | "selectEpisodeLinksFromList": "", 585 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 586 | }, 587 | "selectorChannelFormatNoChannel": { 588 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 589 | "selectEpisodeLinks": "", 590 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 591 | }, 592 | "filterByEpisodeSort": true, 593 | "filterBySubjectName": true, 594 | "selectMedia": { 595 | "distinguishSubjectName": true, 596 | "distinguishChannelName": true 597 | }, 598 | "matchVideo": { 599 | "enableNestedUrl": false, 600 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 601 | "matchVideoUrl": "(?!.+player/\\?type=)(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 602 | "cookies": "quality=1080", 603 | "addHeadersToVideo": { 604 | "referer": "", 605 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 606 | } 607 | } 608 | } 609 | } 610 | }, 611 | { 612 | "factoryId": "web-selector", 613 | "version": 2, 614 | "arguments": { 615 | "name": "樱之空动漫", 616 | "description": "", 617 | "iconUrl": "https://skr.skr2.cc:666/favicon.ico", 618 | "searchConfig": { 619 | "searchUrl": "https://skr.skr2.cc:666/vodsearch/-------------/?wd={keyword}&submit=", 620 | "searchUseOnlyFirstWord": true, 621 | "rawBaseUrl": "", 622 | "subjectFormatId": "a", 623 | "selectorSubjectFormatA": { 624 | "selectLists": "body > div.container > div.left_row.fl > div > ul.vodlist.clearfix > li > div.searchlist_titbox > h4 > a", 625 | "preferShorterName": true 626 | }, 627 | "selectorSubjectFormatIndexed": { 628 | "selectNames": "body > div.container > div.left_row.fl > div > ul.vodlist.clearfix > li > div.searchlist_titbox > h4 > a", 629 | "selectLinks": ".search-box .thumb-menu > a", 630 | "preferShorterName": true 631 | }, 632 | "selectorSubjectFormatJsonPathIndexed": { 633 | "selectLinks": "$[*]['url', 'link']", 634 | "selectNames": "$[*]['title','name']", 635 | "preferShorterName": true 636 | }, 637 | "channelFormatId": "index-grouped", 638 | "selectorChannelFormatFlattened": { 639 | "selectChannelNames": "#NumTab > a", 640 | "matchChannelName": "^()?(?.+?)(\\d+)?$", 641 | "selectEpisodeLists": "div.play_list_box", 642 | "selectEpisodesFromList": "a", 643 | "selectEpisodeLinksFromList": "", 644 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 645 | }, 646 | "selectorChannelFormatNoChannel": { 647 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 648 | "selectEpisodeLinks": "", 649 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 650 | }, 651 | "filterByEpisodeSort": true, 652 | "filterBySubjectName": true, 653 | "selectMedia": { 654 | "distinguishSubjectName": true, 655 | "distinguishChannelName": true 656 | }, 657 | "matchVideo": { 658 | "enableNestedUrl": true, 659 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 660 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(.+player/\\?url=(?.+))", 661 | "cookies": "quality=1080", 662 | "addHeadersToVideo": { 663 | "referer": "", 664 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 665 | } 666 | } 667 | } 668 | } 669 | }, 670 | { 671 | "factoryId": "web-selector", 672 | "version": 2, 673 | "arguments": { 674 | "name": "ssrfun", 675 | "description": "", 676 | "iconUrl": "https://www.ssrfun.com/upload/mxprocms/20240730-1/15a3e23f5756d16bb7803749479d6d6c.png", 677 | "searchConfig": { 678 | "searchUrl": "https://www.ssrfun.com/vodsearch/-------------.html?wd={keyword}", 679 | "searchUseOnlyFirstWord": true, 680 | "searchRemoveSpecial": true, 681 | "rawBaseUrl": "", 682 | "subjectFormatId": "indexed", 683 | "selectorSubjectFormatA": { 684 | "selectLists": "div.module-card-item-title > a", 685 | "preferShorterName": true 686 | }, 687 | "selectorSubjectFormatIndexed": { 688 | "selectNames": "div.module-card-item-title", 689 | "selectLinks": "div.module-card-item > div.module-card-item-footer > a:nth-child(2)", 690 | "preferShorterName": true 691 | }, 692 | "selectorSubjectFormatJsonPathIndexed": { 693 | "selectLinks": "$[*]['url', 'link']", 694 | "selectNames": "$[*]['title','name']", 695 | "preferShorterName": true 696 | }, 697 | "channelFormatId": "index-grouped", 698 | "selectorChannelFormatFlattened": { 699 | "selectChannelNames": "#y-playList > div > span", 700 | "matchChannelName": "", 701 | "selectEpisodeLists": "#panel1", 702 | "selectEpisodesFromList": "a", 703 | "selectEpisodeLinksFromList": "", 704 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 705 | }, 706 | "selectorChannelFormatNoChannel": { 707 | "selectEpisodes": "#stab_1_71 > ul > li > a", 708 | "selectEpisodeLinks": "", 709 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 710 | }, 711 | "filterByEpisodeSort": true, 712 | "filterBySubjectName": true, 713 | "selectMedia": { 714 | "distinguishSubjectName": true, 715 | "distinguishChannelName": true 716 | }, 717 | "matchVideo": { 718 | "enableNestedUrl": true, 719 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 720 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(\\.m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(.+/\\?url=(?.+))", 721 | "cookies": "quality=1080", 722 | "addHeadersToVideo": { 723 | "referer": "", 724 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 725 | } 726 | } 727 | } 728 | } 729 | }, 730 | { 731 | "factoryId": "web-selector", 732 | "version": 2, 733 | "arguments": { 734 | "name": "wedm", 735 | "description": "", 736 | "iconUrl": "https://www.vdm5.com/favicon.ico", 737 | "searchConfig": { 738 | "searchUrl": "https://www.vdm5.com/search_-------------.html?wd={keyword}", 739 | "searchUseOnlyFirstWord": true, 740 | "searchRemoveSpecial": true, 741 | "rawBaseUrl": "", 742 | "subjectFormatId": "a", 743 | "selectorSubjectFormatA": { 744 | "selectLists": "div.detail > h3 > a", 745 | "preferShorterName": true 746 | }, 747 | "selectorSubjectFormatIndexed": { 748 | "selectNames": ".search-box .thumb-content > .thumb-txt", 749 | "selectLinks": ".search-box .thumb-menu > a", 750 | "preferShorterName": true 751 | }, 752 | "selectorSubjectFormatJsonPathIndexed": { 753 | "selectLinks": "$[*]['url', 'link']", 754 | "selectNames": "$[*]['title','name']", 755 | "preferShorterName": true 756 | }, 757 | "channelFormatId": "index-grouped", 758 | "selectorChannelFormatFlattened": { 759 | "selectChannelNames": "div.stui-pannel-box.playlist > div.stui-pannel_hd > div > h3.title", 760 | "matchChannelName": "^(?.+?)(\\d+)?$", 761 | "selectEpisodeLists": ".stui-content__playlist", 762 | "selectEpisodesFromList": "a", 763 | "selectEpisodeLinksFromList": "", 764 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 765 | }, 766 | "selectorChannelFormatNoChannel": { 767 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 768 | "selectEpisodeLinks": "", 769 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 770 | }, 771 | "filterByEpisodeSort": true, 772 | "filterBySubjectName": true, 773 | "selectMedia": { 774 | "distinguishSubjectName": true, 775 | "distinguishChannelName": true 776 | }, 777 | "matchVideo": { 778 | "enableNestedUrl": true, 779 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 780 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 781 | "cookies": "quality=1080", 782 | "addHeadersToVideo": { 783 | "referer": "", 784 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 785 | } 786 | } 787 | } 788 | } 789 | }, 790 | { 791 | "factoryId": "web-selector", 792 | "version": 2, 793 | "arguments": { 794 | "name": "樱花动漫", 795 | "description": "", 796 | "iconUrl": "https://www.yinghua2.com/statics/img/favicon.ico", 797 | "searchConfig": { 798 | "searchUrl": "https://www.yinghua2.com/index.php/vod/search.html?wd={keyword}", 799 | "searchUseOnlyFirstWord": true, 800 | "searchRemoveSpecial": true, 801 | "rawBaseUrl": "", 802 | "subjectFormatId": "a", 803 | "selectorSubjectFormatA": { 804 | "selectLists": ".title > a", 805 | "preferShorterName": true 806 | }, 807 | "selectorSubjectFormatIndexed": { 808 | "selectNames": ".search-box .thumb-content > .thumb-txt", 809 | "selectLinks": ".search-box .thumb-menu > a", 810 | "preferShorterName": true 811 | }, 812 | "selectorSubjectFormatJsonPathIndexed": { 813 | "selectLinks": "$[*]['url', 'link']", 814 | "selectNames": "$[*]['title','name']", 815 | "preferShorterName": true 816 | }, 817 | "channelFormatId": "index-grouped", 818 | "selectorChannelFormatFlattened": { 819 | "selectChannelNames": ".playlist .stui-pannel__head > h3.title", 820 | "matchChannelName": "", 821 | "selectEpisodeLists": ".stui-content__playlist", 822 | "selectEpisodesFromList": "a", 823 | "selectEpisodeLinksFromList": "", 824 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 825 | }, 826 | "selectorChannelFormatNoChannel": { 827 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 828 | "selectEpisodeLinks": "", 829 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 830 | }, 831 | "filterByEpisodeSort": true, 832 | "filterBySubjectName": true, 833 | "selectMedia": { 834 | "distinguishSubjectName": true, 835 | "distinguishChannelName": true 836 | }, 837 | "matchVideo": { 838 | "enableNestedUrl": true, 839 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 840 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(.+\\?url=(?.+))", 841 | "cookies": "quality=1080", 842 | "addHeadersToVideo": { 843 | "referer": "", 844 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 845 | } 846 | } 847 | } 848 | } 849 | }, 850 | { 851 | "factoryId": "web-selector", 852 | "version": 2, 853 | "arguments": { 854 | "name": "中国动漫网(可能有广告)", 855 | "description": "", 856 | "iconUrl": "https://zgacgn.com/favicon.ico", 857 | "searchConfig": { 858 | "searchUrl": "https://zgacgn.com/search.php?searchword={keyword}", 859 | "searchUseOnlyFirstWord": true, 860 | "searchRemoveSpecial": true, 861 | "rawBaseUrl": "", 862 | "subjectFormatId": "a", 863 | "selectorSubjectFormatA": { 864 | "selectLists": "#cont_pub > dl> dd:nth-child(2) > div > a", 865 | "preferShorterName": true 866 | }, 867 | "selectorSubjectFormatIndexed": { 868 | "selectNames": ".search-box .thumb-content > .thumb-txt", 869 | "selectLinks": ".search-box .thumb-menu > a", 870 | "preferShorterName": true 871 | }, 872 | "selectorSubjectFormatJsonPathIndexed": { 873 | "selectLinks": "$[*]['url', 'link']", 874 | "selectNames": "$[*]['title','name']", 875 | "preferShorterName": true 876 | }, 877 | "channelFormatId": "index-grouped", 878 | "selectorChannelFormatFlattened": { 879 | "selectChannelNames": "#liebiao > font:nth-child(1)", 880 | "matchChannelName": "^(?.+?)(\\d+)?$", 881 | "selectEpisodeLists": ".playList", 882 | "selectEpisodesFromList": "a", 883 | "selectEpisodeLinksFromList": "", 884 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 885 | }, 886 | "selectorChannelFormatNoChannel": { 887 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 888 | "selectEpisodeLinks": "", 889 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 890 | }, 891 | "filterByEpisodeSort": true, 892 | "filterBySubjectName": true, 893 | "selectMedia": { 894 | "distinguishSubjectName": true, 895 | "distinguishChannelName": true 896 | }, 897 | "matchVideo": { 898 | "enableNestedUrl": false, 899 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 900 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(\\.m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(.+player/\\?url=(?[^&]+\\.m3u8))", 901 | "cookies": "quality=1080", 902 | "addHeadersToVideo": { 903 | "referer": "", 904 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 905 | } 906 | } 907 | } 908 | } 909 | } 910 | ] 911 | } 912 | } -------------------------------------------------------------------------------- /source/online/ani-yuan.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportedMediaSourceDataList": { 3 | "mediaSources": [ 4 | { 5 | "factoryId": "web-selector", 6 | "version": 2, 7 | "arguments": { 8 | "name": "酱紫社(修复)", 9 | "description": "", 10 | "iconUrl": "http://www.jzsdm1.com/upload/eighteen/20241227-1/991272b4a1029e60a9951c8ea874ff2a.png", 11 | "searchConfig": { 12 | "searchUrl": "http://www.jzsdm1.com/index.php/vod/search.html?wd={keyword}", 13 | "searchUseOnlyFirstWord": true, 14 | "searchRemoveSpecial": true, 15 | "searchUseSubjectNamesCount": 1, 16 | "rawBaseUrl": "", 17 | "requestInterval": 3000, 18 | "subjectFormatId": "indexed", 19 | "selectorSubjectFormatA": { 20 | "selectLists": "div.video-info-header > a", 21 | "preferShorterName": true 22 | }, 23 | "selectorSubjectFormatIndexed": { 24 | "selectNames": "body > .box-width .search-box .thumb-content > .thumb-txt", 25 | "selectLinks": "body > .box-width .search-box .thumb-menu > a", 26 | "preferShorterName": true 27 | }, 28 | "selectorSubjectFormatJsonPathIndexed": { 29 | "selectLinks": "$[*]['url', 'link']", 30 | "selectNames": "$[*]['title','name']", 31 | "preferShorterName": true 32 | }, 33 | "channelFormatId": "index-grouped", 34 | "selectorChannelFormatFlattened": { 35 | "selectChannelNames": ".anthology-tab > .swiper-wrapper a", 36 | "matchChannelName": "^(?.+?)(\\d+)?$", 37 | "selectEpisodeLists": ".anthology-list-box", 38 | "selectEpisodesFromList": "a", 39 | "selectEpisodeLinksFromList": "", 40 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 41 | }, 42 | "selectorChannelFormatNoChannel": { 43 | "selectEpisodes": ".anthology-list-play a", 44 | "selectEpisodeLinks": "", 45 | "matchEpisodeSortFromName": "(第\\s*(?.+)\\s*[话集])|1080P" 46 | }, 47 | "defaultResolution": "1080P", 48 | "defaultSubtitleLanguage": "CHS", 49 | "onlySupportsPlayers": [], 50 | "filterByEpisodeSort": true, 51 | "filterBySubjectName": true, 52 | "selectMedia": { 53 | "distinguishSubjectName": true, 54 | "distinguishChannelName": true 55 | }, 56 | "matchVideo": { 57 | "enableNestedUrl": true, 58 | "matchNestedUrl": "$^", 59 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(url=(?.+playlist.m3u8))", 60 | "cookies": "quality=1080P", 61 | "addHeadersToVideo": { 62 | "referer": "", 63 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 64 | } 65 | } 66 | }, 67 | "tier": 1 68 | } 69 | }, 70 | { 71 | "factoryId": "web-selector", 72 | "version": 2, 73 | "arguments": { 74 | "name": "嘀哩嘀哩", 75 | "description": "", 76 | "iconUrl": "https://dilidili.online/favicon.ico", 77 | "searchConfig": { 78 | "searchUrl": "https://dilidili.online/search?q={keyword}", 79 | "searchUseOnlyFirstWord": false, 80 | "searchRemoveSpecial": true, 81 | "searchUseSubjectNamesCount": 1, 82 | "rawBaseUrl": "", 83 | "requestInterval": 3000, 84 | "subjectFormatId": "a", 85 | "selectorSubjectFormatA": { 86 | "selectLists": ".card-body > a", 87 | "preferShorterName": true 88 | }, 89 | "selectorSubjectFormatIndexed": { 90 | "selectNames": ".search-box .thumb-content > .thumb-txt", 91 | "selectLinks": ".search-box .thumb-menu > a", 92 | "preferShorterName": true 93 | }, 94 | "selectorSubjectFormatJsonPathIndexed": { 95 | "selectLinks": "$[*]['url', 'link']", 96 | "selectNames": "$[*]['title','name']", 97 | "preferShorterName": true 98 | }, 99 | "channelFormatId": "index-grouped", 100 | "selectorChannelFormatFlattened": { 101 | "selectChannelNames": ".nav-item.flex-fill.overflow-hidden.play-tab", 102 | "matchChannelName": "^(?.+?)(\\d+)?$", 103 | "selectEpisodeLists": ".list-unstyled", 104 | "selectEpisodesFromList": "a", 105 | "selectEpisodeLinksFromList": "", 106 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 107 | }, 108 | "selectorChannelFormatNoChannel": { 109 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 110 | "selectEpisodeLinks": "", 111 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 112 | }, 113 | "defaultResolution": "720P", 114 | "defaultSubtitleLanguage": "CHS", 115 | "onlySupportsPlayers": [], 116 | "filterByEpisodeSort": true, 117 | "filterBySubjectName": true, 118 | "selectMedia": { 119 | "distinguishSubjectName": true, 120 | "distinguishChannelName": true 121 | }, 122 | "matchVideo": { 123 | "enableNestedUrl": true, 124 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 125 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 126 | "cookies": "quality=1080", 127 | "addHeadersToVideo": { 128 | "referer": "", 129 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 130 | } 131 | } 132 | } 133 | } 134 | }, 135 | { 136 | "factoryId": "web-selector", 137 | "version": 2, 138 | "arguments": { 139 | "name": "落攻动漫", 140 | "description": "", 141 | "iconUrl": "https://www.fengchedonman.com/upload/mxprocms/20250308-1/260c7eba5817cd863c8e79c173e3e69a.jpg", 142 | "searchConfig": { 143 | "searchUrl": "https://www.fengchedonman.com/vodsearch/{keyword}----------1---.html", 144 | "searchUseOnlyFirstWord": false, 145 | "searchRemoveSpecial": true, 146 | "searchUseSubjectNamesCount": 1, 147 | "rawBaseUrl": "", 148 | "requestInterval": 3000, 149 | "subjectFormatId": "indexed", 150 | "selectorSubjectFormatA": { 151 | "selectLists": "div.module-card-item-title > a", 152 | "preferShorterName": true 153 | }, 154 | "selectorSubjectFormatIndexed": { 155 | "selectNames": "div.module-card-item-title > a", 156 | "selectLinks": "div.module-card-item-title > a", 157 | "preferShorterName": true 158 | }, 159 | "selectorSubjectFormatJsonPathIndexed": { 160 | "selectLinks": "$[*]['url', 'link']", 161 | "selectNames": "$[*]['title','name']", 162 | "preferShorterName": true 163 | }, 164 | "channelFormatId": "index-grouped", 165 | "selectorChannelFormatFlattened": { 166 | "selectChannelNames": ".module-tab-item.tab-item", 167 | "matchChannelName": "^(?.+?)(\\d+)?$", 168 | "selectEpisodeLists": ".module-play-list", 169 | "selectEpisodesFromList": "a", 170 | "selectEpisodeLinksFromList": "", 171 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 172 | }, 173 | "selectorChannelFormatNoChannel": { 174 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 175 | "selectEpisodeLinks": "", 176 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 177 | }, 178 | "defaultResolution": "720P", 179 | "defaultSubtitleLanguage": "CHS", 180 | "onlySupportsPlayers": [], 181 | "filterByEpisodeSort": true, 182 | "filterBySubjectName": true, 183 | "selectMedia": { 184 | "distinguishSubjectName": true, 185 | "distinguishChannelName": true 186 | }, 187 | "matchVideo": { 188 | "enableNestedUrl": true, 189 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 190 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 191 | "cookies": "quality=1080", 192 | "addHeadersToVideo": { 193 | "referer": "", 194 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 195 | } 196 | } 197 | } 198 | } 199 | }, 200 | { 201 | "factoryId": "web-selector", 202 | "version": 2, 203 | "arguments": { 204 | "name": "新动漫网", 205 | "description": "可看里番", 206 | "iconUrl": "https://www.xdmw.cc/template/kuhei3/statics/img/logo_m.png", 207 | "searchConfig": { 208 | "searchUrl": "https://www.xdmw.cc/vodsearch/{keyword}----------1---.html", 209 | "searchUseOnlyFirstWord": false, 210 | "searchRemoveSpecial": true, 211 | "searchUseSubjectNamesCount": 1, 212 | "rawBaseUrl": "", 213 | "requestInterval": 3000, 214 | "subjectFormatId": "indexed", 215 | "selectorSubjectFormatA": { 216 | "selectLists": ".title > a", 217 | "preferShorterName": true 218 | }, 219 | "selectorSubjectFormatIndexed": { 220 | "selectNames": ".title > a", 221 | "selectLinks": ".title > a", 222 | "preferShorterName": true 223 | }, 224 | "selectorSubjectFormatJsonPathIndexed": { 225 | "selectLinks": "$[*]['url', 'link']", 226 | "selectNames": "$[*]['title','name']", 227 | "preferShorterName": true 228 | }, 229 | "channelFormatId": "index-grouped", 230 | "selectorChannelFormatFlattened": { 231 | "selectChannelNames": ".pull-right1", 232 | "matchChannelName": "^(?.+?)(\\d+)?$", 233 | "selectEpisodeLists": ".stui-content__playlist", 234 | "selectEpisodesFromList": "a", 235 | "selectEpisodeLinksFromList": "", 236 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 237 | }, 238 | "selectorChannelFormatNoChannel": { 239 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 240 | "selectEpisodeLinks": "", 241 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 242 | }, 243 | "defaultResolution": "720P", 244 | "defaultSubtitleLanguage": "CHS", 245 | "onlySupportsPlayers": [], 246 | "filterByEpisodeSort": true, 247 | "filterBySubjectName": true, 248 | "selectMedia": { 249 | "distinguishSubjectName": true, 250 | "distinguishChannelName": true 251 | }, 252 | "matchVideo": { 253 | "enableNestedUrl": true, 254 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 255 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 256 | "cookies": "quality=1080", 257 | "addHeadersToVideo": { 258 | "referer": "", 259 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 260 | } 261 | } 262 | } 263 | } 264 | }, 265 | { 266 | "factoryId": "web-selector", 267 | "version": 2, 268 | "arguments": { 269 | "name": "秋之动漫", 270 | "description": "不行就梯子", 271 | "iconUrl": "https://syimg.3dmgame.com/uploadimg/ico/2024/0705/1720161268791112.png", 272 | "searchConfig": { 273 | "searchUrl": "https://www.akianime.cc/bgmsearch/-------------.html?wd={keyword}", 274 | "searchUseOnlyFirstWord": false, 275 | "searchRemoveSpecial": true, 276 | "searchUseSubjectNamesCount": 1, 277 | "rawBaseUrl": "", 278 | "requestInterval": 3000, 279 | "subjectFormatId": "indexed", 280 | "selectorSubjectFormatA": { 281 | "selectLists": ".detail-info.rel.flex-auto.lightSpeedIn > a", 282 | "preferShorterName": true 283 | }, 284 | "selectorSubjectFormatIndexed": { 285 | "selectNames": ".detail-info.rel.flex-auto.lightSpeedIn > a", 286 | "selectLinks": ".detail-info.rel.flex-auto.lightSpeedIn > a", 287 | "preferShorterName": true 288 | }, 289 | "selectorSubjectFormatJsonPathIndexed": { 290 | "selectLinks": "$[*]['url', 'link']", 291 | "selectNames": "$[*]['title','name']", 292 | "preferShorterName": true 293 | }, 294 | "channelFormatId": "index-grouped", 295 | "selectorChannelFormatFlattened": { 296 | "selectChannelNames": ".anthology-tab > div.swiper-wrapper > a", 297 | "matchChannelName": "^(?.+?)(\\d+)?$", 298 | "selectEpisodeLists": ".anthology-list-box", 299 | "selectEpisodesFromList": "a", 300 | "selectEpisodeLinksFromList": "", 301 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 302 | }, 303 | "selectorChannelFormatNoChannel": { 304 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 305 | "selectEpisodeLinks": "", 306 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 307 | }, 308 | "defaultResolution": "1080P", 309 | "defaultSubtitleLanguage": "CHS", 310 | "onlySupportsPlayers": [], 311 | "filterByEpisodeSort": true, 312 | "filterBySubjectName": true, 313 | "selectMedia": { 314 | "distinguishSubjectName": true, 315 | "distinguishChannelName": true 316 | }, 317 | "matchVideo": { 318 | "enableNestedUrl": true, 319 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 320 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(.+if=1&url=(?.+))", 321 | "cookies": "quality=1080", 322 | "addHeadersToVideo": { 323 | "referer": "", 324 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 325 | } 326 | } 327 | } 328 | } 329 | }, 330 | { 331 | "factoryId": "web-selector", 332 | "version": 2, 333 | "arguments": { 334 | "name": "AGE动漫", 335 | "description": "", 336 | "iconUrl": "https://cdn.aiqingyu1314.com/age/statics/images/avatar.jpg?v=2024042101", 337 | "searchConfig": { 338 | "searchUrl": "https://www.agedm.org/search?query={keyword}&page=1", 339 | "searchUseOnlyFirstWord": false, 340 | "searchRemoveSpecial": true, 341 | "searchUseSubjectNamesCount": 1, 342 | "rawBaseUrl": "", 343 | "requestInterval": 3000, 344 | "subjectFormatId": "a", 345 | "selectorSubjectFormatA": { 346 | "selectLists": ".card-title > a", 347 | "preferShorterName": true 348 | }, 349 | "selectorSubjectFormatIndexed": { 350 | "selectNames": ".search-box .thumb-content > .thumb-txt", 351 | "selectLinks": ".search-box .thumb-menu > a", 352 | "preferShorterName": true 353 | }, 354 | "selectorSubjectFormatJsonPathIndexed": { 355 | "selectLinks": "$[*]['url', 'link']", 356 | "selectNames": "$[*]['title','name']", 357 | "preferShorterName": true 358 | }, 359 | "channelFormatId": "index-grouped", 360 | "selectorChannelFormatFlattened": { 361 | "selectChannelNames": ".nav-item", 362 | "matchChannelName": "^(?.+?)(\\d+)?$", 363 | "selectEpisodeLists": "ul.video_detail_episode", 364 | "selectEpisodesFromList": "a", 365 | "selectEpisodeLinksFromList": "", 366 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 367 | }, 368 | "selectorChannelFormatNoChannel": { 369 | "selectEpisodes": "a", 370 | "selectEpisodeLinks": "", 371 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 372 | }, 373 | "defaultResolution": "1080P", 374 | "defaultSubtitleLanguage": "CHS", 375 | "onlySupportsPlayers": [], 376 | "filterByEpisodeSort": true, 377 | "filterBySubjectName": true, 378 | "selectMedia": { 379 | "distinguishSubjectName": true, 380 | "distinguishChannelName": true 381 | }, 382 | "matchVideo": { 383 | "enableNestedUrl": true, 384 | "matchNestedUrl": "^.+(m3u8|vip|xigua.php).+?url=", 385 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(.+if=1&url=(?.+))", 386 | "cookies": "quality=1080", 387 | "addHeadersToVideo": { 388 | "referer": "", 389 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 390 | } 391 | } 392 | } 393 | } 394 | }, 395 | { 396 | "factoryId": "web-selector", 397 | "version": 2, 398 | "arguments": { 399 | "name": "新优酷", 400 | "description": "", 401 | "iconUrl": "https://www.youknow.tv/upload/mxprocms/20240119-1/55e70266f81055026bb40dee6a603812.png", 402 | "searchConfig": { 403 | "searchUrl": "https://www.youknow.tv/search/-------------/?wd={keyword}", 404 | "searchUseOnlyFirstWord": false, 405 | "searchRemoveSpecial": true, 406 | "searchUseSubjectNamesCount": 1, 407 | "rawBaseUrl": "", 408 | "requestInterval": 3000, 409 | "subjectFormatId": "a", 410 | "selectorSubjectFormatA": { 411 | "selectLists": ".module-card-item-title > a", 412 | "preferShorterName": true 413 | }, 414 | "selectorSubjectFormatIndexed": { 415 | "selectNames": ".search-box .thumb-content > .thumb-txt", 416 | "selectLinks": ".search-box .thumb-menu > a", 417 | "preferShorterName": true 418 | }, 419 | "selectorSubjectFormatJsonPathIndexed": { 420 | "selectLinks": "$[*]['url', 'link']", 421 | "selectNames": "$[*]['title','name']", 422 | "preferShorterName": true 423 | }, 424 | "channelFormatId": "index-grouped", 425 | "selectorChannelFormatFlattened": { 426 | "selectChannelNames": ".module-tab-items-box > .module-tab-item.tab-item", 427 | "matchChannelName": "(?.*?\\d)", 428 | "selectEpisodeLists": ".module-play-list-content.module-play-list-base", 429 | "selectEpisodesFromList": "a", 430 | "selectEpisodeLinksFromList": "", 431 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 432 | }, 433 | "selectorChannelFormatNoChannel": { 434 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 435 | "selectEpisodeLinks": "", 436 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 437 | }, 438 | "defaultResolution": "720P", 439 | "defaultSubtitleLanguage": "CHS", 440 | "onlySupportsPlayers": [], 441 | "filterByEpisodeSort": true, 442 | "filterBySubjectName": true, 443 | "selectMedia": { 444 | "distinguishSubjectName": true, 445 | "distinguishChannelName": true 446 | }, 447 | "matchVideo": { 448 | "enableNestedUrl": true, 449 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 450 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 451 | "cookies": "quality=1080", 452 | "addHeadersToVideo": { 453 | "referer": "", 454 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 455 | } 456 | } 457 | } 458 | } 459 | }, 460 | { 461 | "factoryId": "web-selector", 462 | "version": 2, 463 | "arguments": { 464 | "name": "萌番动漫", 465 | "description": "", 466 | "iconUrl": "https://www.moefan.cc/upload/site/20250314-1/0a7c24e7dc763b5ed861cc22061cca8b.png", 467 | "searchConfig": { 468 | "searchUrl": "https://www.moefan.cc/index.php/vod/search.html?wd={keyword}&submit=", 469 | "searchUseOnlyFirstWord": false, 470 | "searchRemoveSpecial": true, 471 | "searchUseSubjectNamesCount": 1, 472 | "rawBaseUrl": "", 473 | "requestInterval": 3000, 474 | "subjectFormatId": "a", 475 | "selectorSubjectFormatA": { 476 | "selectLists": ".hl-item-thumb", 477 | "preferShorterName": true 478 | }, 479 | "selectorSubjectFormatIndexed": { 480 | "selectNames": ".search-box .thumb-content > .thumb-txt", 481 | "selectLinks": ".search-box .thumb-menu > a", 482 | "preferShorterName": true 483 | }, 484 | "selectorSubjectFormatJsonPathIndexed": { 485 | "selectLinks": "$[*]['url', 'link']", 486 | "selectNames": "$[*]['title','name']", 487 | "preferShorterName": true 488 | }, 489 | "channelFormatId": "index-grouped", 490 | "selectorChannelFormatFlattened": { 491 | "selectChannelNames": ".hl-tabs-btn", 492 | "matchChannelName": "(?.*?\\d)", 493 | "selectEpisodeLists": ".hl-plays-list", 494 | "selectEpisodesFromList": "a", 495 | "selectEpisodeLinksFromList": "", 496 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 497 | }, 498 | "selectorChannelFormatNoChannel": { 499 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 500 | "selectEpisodeLinks": "", 501 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 502 | }, 503 | "defaultResolution": "1080P", 504 | "defaultSubtitleLanguage": "CHS", 505 | "onlySupportsPlayers": [], 506 | "filterByEpisodeSort": true, 507 | "filterBySubjectName": true, 508 | "selectMedia": { 509 | "distinguishSubjectName": true, 510 | "distinguishChannelName": true 511 | }, 512 | "matchVideo": { 513 | "enableNestedUrl": true, 514 | "matchNestedUrl": "^.+(m3u8|vip.js|xigua\\.php).+\\?", 515 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 516 | "cookies": "quality=1080", 517 | "addHeadersToVideo": { 518 | "referer": "", 519 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 520 | } 521 | } 522 | } 523 | } 524 | }, 525 | { 526 | "factoryId": "web-selector", 527 | "version": 2, 528 | "arguments": { 529 | "name": "风铃动漫", 530 | "description": "", 531 | "iconUrl": "https://www.aafun.cc/favicon.ico", 532 | "searchConfig": { 533 | "searchUrl": "https://www.aafun.cc/feng-s.html?wd={keyword}&submit=", 534 | "searchUseOnlyFirstWord": true, 535 | "searchRemoveSpecial": true, 536 | "searchUseSubjectNamesCount": 1, 537 | "rawBaseUrl": "", 538 | "requestInterval": 3000, 539 | "subjectFormatId": "a", 540 | "selectorSubjectFormatA": { 541 | "selectLists": ".hl-item-thumb", 542 | "preferShorterName": true 543 | }, 544 | "selectorSubjectFormatIndexed": { 545 | "selectNames": ".search-box .thumb-content > .thumb-txt", 546 | "selectLinks": ".search-box .thumb-menu > a", 547 | "preferShorterName": true 548 | }, 549 | "selectorSubjectFormatJsonPathIndexed": { 550 | "selectLinks": "$[*]['url', 'link']", 551 | "selectNames": "$[*]['title','name']", 552 | "preferShorterName": true 553 | }, 554 | "channelFormatId": "index-grouped", 555 | "selectorChannelFormatFlattened": { 556 | "selectChannelNames": ".hl-tabs-btn", 557 | "matchChannelName": "^(?.+?)(\\d+)?$", 558 | "selectEpisodeLists": ".hl-plays-list", 559 | "selectEpisodesFromList": "a", 560 | "selectEpisodeLinksFromList": "", 561 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 562 | }, 563 | "selectorChannelFormatNoChannel": { 564 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 565 | "selectEpisodeLinks": "", 566 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 567 | }, 568 | "defaultResolution": "1080P", 569 | "defaultSubtitleLanguage": "CHS", 570 | "onlySupportsPlayers": [], 571 | "filterByEpisodeSort": true, 572 | "filterBySubjectName": true, 573 | "selectMedia": { 574 | "distinguishSubjectName": true, 575 | "distinguishChannelName": true 576 | }, 577 | "matchVideo": { 578 | "enableNestedUrl": true, 579 | "matchNestedUrl": "^.+(m3u8|vip.js|xigua\\.php).+\\?", 580 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 581 | "cookies": "quality=1080", 582 | "addHeadersToVideo": { 583 | "referer": "", 584 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 585 | } 586 | } 587 | } 588 | } 589 | }, 590 | { 591 | "factoryId": "web-selector", 592 | "version": 2, 593 | "arguments": { 594 | "name": "E-ACG(替换)", 595 | "description": "", 596 | "iconUrl": "https://i.loli.net/2019/12/09/17hvXK2LemTtgfs.png", 597 | "searchConfig": { 598 | "searchUrl": "https://www.eacg1.com/vodsearch/-------------.html?wd={keyword}", 599 | "searchUseOnlyFirstWord": false, 600 | "searchRemoveSpecial": true, 601 | "searchUseSubjectNamesCount": 1, 602 | "rawBaseUrl": "", 603 | "requestInterval": 5000, 604 | "subjectFormatId": "a", 605 | "selectorSubjectFormatA": { 606 | "selectLists": "body > div.fed-main-info.fed-min-width > div > div > dl > dd.fed-deta-content > h1 a", 607 | "preferShorterName": true 608 | }, 609 | "selectorSubjectFormatIndexed": { 610 | "selectNames": ".fed-part-layout .fed-deta-info h1.fed-part-eone", 611 | "selectLinks": ".fed-part-layout > .fed-deta-info h1.a", 612 | "preferShorterName": true 613 | }, 614 | "selectorSubjectFormatJsonPathIndexed": { 615 | "selectLinks": "$[*]['url', 'link']", 616 | "selectNames": "$[*]['title','name']", 617 | "preferShorterName": true 618 | }, 619 | "channelFormatId": "index-grouped", 620 | "selectorChannelFormatFlattened": { 621 | "selectChannelNames": "body .fed-part-case .fed-tabs-boxs li.fed-play-btns a", 622 | "matchChannelName": "(?.*?\\d+)", 623 | "selectEpisodeLists": ".fed-drop-boxs.fed-drop-btms .fed-play-item", 624 | "selectEpisodesFromList": ".fed-col-lg1 a", 625 | "selectEpisodeLinksFromList": "", 626 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 627 | }, 628 | "selectorChannelFormatNoChannel": { 629 | "selectEpisodes": ".fed-drop-boxs .fed-part-rows .fed-col-lg1 a", 630 | "selectEpisodeLinks": "", 631 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 632 | }, 633 | "defaultResolution": "1080P", 634 | "defaultSubtitleLanguage": "CHS", 635 | "onlySupportsPlayers": [], 636 | "filterByEpisodeSort": true, 637 | "filterBySubjectName": true, 638 | "selectMedia": { 639 | "distinguishSubjectName": true, 640 | "distinguishChannelName": true 641 | }, 642 | "matchVideo": { 643 | "enableNestedUrl": true, 644 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 645 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 646 | "cookies": "quality=1080", 647 | "addHeadersToVideo": { 648 | "referer": "", 649 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 650 | } 651 | } 652 | } 653 | } 654 | }, 655 | { 656 | "factoryId": "web-selector", 657 | "version": 2, 658 | "arguments": { 659 | "name": "第一动漫(替换)", 660 | "description": "可看里番", 661 | "iconUrl": "https://anime.d1dm.xyz/template/conch/asset/img/favicon1.png", 662 | "searchConfig": { 663 | "searchUrl": "https://1anime2025.me/vodsearch/-------------.html?wd={keyword}", 664 | "searchUseOnlyFirstWord": false, 665 | "searchRemoveSpecial": true, 666 | "searchUseSubjectNamesCount": 1, 667 | "rawBaseUrl": "", 668 | "requestInterval": 3000, 669 | "subjectFormatId": "a", 670 | "selectorSubjectFormatA": { 671 | "selectLists": "div.video-info-header > a", 672 | "preferShorterName": true 673 | }, 674 | "selectorSubjectFormatIndexed": { 675 | "selectNames": ".search-box .thumb-content > .thumb-txt", 676 | "selectLinks": ".search-box .thumb-menu > a", 677 | "preferShorterName": true 678 | }, 679 | "selectorSubjectFormatJsonPathIndexed": { 680 | "selectLinks": "$[*]['url', 'link']", 681 | "selectNames": "$[*]['title','name']", 682 | "preferShorterName": true 683 | }, 684 | "channelFormatId": "index-grouped", 685 | "selectorChannelFormatFlattened": { 686 | "selectChannelNames": "div.module-tab-item > span", 687 | "matchChannelName": "^(?.+?)(\\d+)?$", 688 | "selectEpisodeLists": ".module-list.module-player-list", 689 | "selectEpisodesFromList": "a", 690 | "selectEpisodeLinksFromList": "", 691 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 692 | }, 693 | "selectorChannelFormatNoChannel": { 694 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 695 | "selectEpisodeLinks": "", 696 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 697 | }, 698 | "defaultResolution": "1080P", 699 | "defaultSubtitleLanguage": "CHS", 700 | "onlySupportsPlayers": [], 701 | "filterByEpisodeSort": true, 702 | "filterBySubjectName": true, 703 | "selectMedia": { 704 | "distinguishSubjectName": true, 705 | "distinguishChannelName": true 706 | }, 707 | "matchVideo": { 708 | "enableNestedUrl": true, 709 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 710 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 711 | "cookies": "quality=1080", 712 | "addHeadersToVideo": { 713 | "referer": "", 714 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 715 | } 716 | } 717 | } 718 | } 719 | }, 720 | { 721 | "factoryId": "web-selector", 722 | "version": 2, 723 | "arguments": { 724 | "name": "次元方舟", 725 | "description": "", 726 | "iconUrl": "https://itopdog.xyxza.com/52pknet/imgfile/20231211/11102331be1e.jpg", 727 | "searchConfig": { 728 | "searchUrl": "http://www.cyfz.vip/search.html?wd={keyword}", 729 | "searchUseOnlyFirstWord": false, 730 | "searchRemoveSpecial": true, 731 | "searchUseSubjectNamesCount": 1, 732 | "rawBaseUrl": "", 733 | "requestInterval": 3000, 734 | "subjectFormatId": "a", 735 | "selectorSubjectFormatA": { 736 | "selectLists": ".thumb-txt a", 737 | "preferShorterName": true 738 | }, 739 | "selectorSubjectFormatIndexed": { 740 | "selectNames": ".search-box .thumb-content > .thumb-txt", 741 | "selectLinks": ".search-box .thumb-menu > a", 742 | "preferShorterName": true 743 | }, 744 | "selectorSubjectFormatJsonPathIndexed": { 745 | "selectLinks": "$[*]['url', 'link']", 746 | "selectNames": "$[*]['title','name']", 747 | "preferShorterName": true 748 | }, 749 | "channelFormatId": "index-grouped", 750 | "selectorChannelFormatFlattened": { 751 | "selectChannelNames": ".anthology-tab a", 752 | "matchChannelName": "(?.*?\\d)", 753 | "selectEpisodeLists": ".anthology-list-play.size", 754 | "selectEpisodesFromList": "a", 755 | "selectEpisodeLinksFromList": "", 756 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 757 | }, 758 | "selectorChannelFormatNoChannel": { 759 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 760 | "selectEpisodeLinks": "", 761 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 762 | }, 763 | "defaultResolution": "1080P", 764 | "defaultSubtitleLanguage": "CHS", 765 | "onlySupportsPlayers": [], 766 | "filterByEpisodeSort": true, 767 | "filterBySubjectName": true, 768 | "selectMedia": { 769 | "distinguishSubjectName": true, 770 | "distinguishChannelName": true 771 | }, 772 | "matchVideo": { 773 | "enableNestedUrl": true, 774 | "matchNestedUrl": "^.+(m3u8|vip|xigua.php).+?url=", 775 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 776 | "cookies": "quality=1080", 777 | "addHeadersToVideo": { 778 | "referer": "", 779 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 780 | } 781 | } 782 | } 783 | } 784 | }, 785 | { 786 | "factoryId": "web-selector", 787 | "version": 2, 788 | "arguments": { 789 | "name": "追剧影院", 790 | "description": "", 791 | "iconUrl": "https://pp.myapp.com/ma_icon/0/icon_54336988_1716806007/256", 792 | "searchConfig": { 793 | "searchUrl": "https://pzlyw.com/vodsearch/{keyword}----------1---.html", 794 | "searchUseOnlyFirstWord": false, 795 | "searchRemoveSpecial": true, 796 | "searchUseSubjectNamesCount": 1, 797 | "rawBaseUrl": "", 798 | "requestInterval": 3000, 799 | "subjectFormatId": "a", 800 | "selectorSubjectFormatA": { 801 | "selectLists": ".title > a", 802 | "preferShorterName": true 803 | }, 804 | "selectorSubjectFormatIndexed": { 805 | "selectNames": ".search-box .thumb-content > .thumb-txt", 806 | "selectLinks": ".search-box .thumb-menu > a", 807 | "preferShorterName": true 808 | }, 809 | "selectorSubjectFormatJsonPathIndexed": { 810 | "selectLinks": "$[*]['url', 'link']", 811 | "selectNames": "$[*]['title','name']", 812 | "preferShorterName": true 813 | }, 814 | "channelFormatId": "index-grouped", 815 | "selectorChannelFormatFlattened": { 816 | "selectChannelNames": "div.downtitle.cf li", 817 | "matchChannelName": "", 818 | "selectEpisodeLists": ".videolist", 819 | "selectEpisodesFromList": "a", 820 | "selectEpisodeLinksFromList": "", 821 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 822 | }, 823 | "selectorChannelFormatNoChannel": { 824 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 825 | "selectEpisodeLinks": "", 826 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 827 | }, 828 | "defaultResolution": "1080P", 829 | "defaultSubtitleLanguage": "CHS", 830 | "onlySupportsPlayers": [], 831 | "filterByEpisodeSort": true, 832 | "filterBySubjectName": true, 833 | "selectMedia": { 834 | "distinguishSubjectName": true, 835 | "distinguishChannelName": true 836 | }, 837 | "matchVideo": { 838 | "enableNestedUrl": true, 839 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 840 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 841 | "cookies": "quality=1080", 842 | "addHeadersToVideo": { 843 | "referer": "", 844 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 845 | } 846 | } 847 | } 848 | } 849 | }, 850 | { 851 | "factoryId": "web-selector", 852 | "version": 2, 853 | "arguments": { 854 | "name": "喵物次元", 855 | "description": "", 856 | "iconUrl": "http://pic.danji100.com/upload/2023-12/20231211114703835.png", 857 | "searchConfig": { 858 | "searchUrl": "https://www.mwcy.net/search.html?wd={keyword}", 859 | "searchUseOnlyFirstWord": false, 860 | "searchRemoveSpecial": true, 861 | "searchUseSubjectNamesCount": 1, 862 | "rawBaseUrl": "", 863 | "requestInterval": 3000, 864 | "subjectFormatId": "indexed", 865 | "selectorSubjectFormatA": { 866 | "selectLists": "", 867 | "preferShorterName": true 868 | }, 869 | "selectorSubjectFormatIndexed": { 870 | "selectNames": ".search-box .thumb-content > .thumb-txt", 871 | "selectLinks": ".search-box .thumb-menu > a", 872 | "preferShorterName": true 873 | }, 874 | "selectorSubjectFormatJsonPathIndexed": { 875 | "selectLinks": "$[*]['url', 'link']", 876 | "selectNames": "$[*]['title','name']", 877 | "preferShorterName": true 878 | }, 879 | "channelFormatId": "index-grouped", 880 | "selectorChannelFormatFlattened": { 881 | "selectChannelNames": ".anthology-tab > .swiper-wrapper a", 882 | "matchChannelName": "(?.*?\\d)", 883 | "selectEpisodeLists": ".anthology-list-play", 884 | "selectEpisodesFromList": "a", 885 | "selectEpisodeLinksFromList": "", 886 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 887 | }, 888 | "selectorChannelFormatNoChannel": { 889 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 890 | "selectEpisodeLinks": "", 891 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 892 | }, 893 | "defaultResolution": "1080P", 894 | "defaultSubtitleLanguage": "CHS", 895 | "onlySupportsPlayers": [], 896 | "filterByEpisodeSort": true, 897 | "filterBySubjectName": true, 898 | "selectMedia": { 899 | "distinguishSubjectName": true, 900 | "distinguishChannelName": true 901 | }, 902 | "matchVideo": { 903 | "enableNestedUrl": true, 904 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 905 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 906 | "cookies": "quality=1080", 907 | "addHeadersToVideo": { 908 | "referer": "", 909 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 910 | } 911 | } 912 | } 913 | } 914 | }, 915 | { 916 | "factoryId": "web-selector", 917 | "version": 2, 918 | "arguments": { 919 | "name": "去看吧", 920 | "description": "", 921 | "iconUrl": "https://11kt.net/klogo.png", 922 | "searchConfig": { 923 | "searchUrl": "https://11kt.net/index.php/vod/search.html?wd={keyword}", 924 | "searchUseOnlyFirstWord": false, 925 | "searchRemoveSpecial": true, 926 | "searchUseSubjectNamesCount": 1, 927 | "rawBaseUrl": "", 928 | "requestInterval": 3000, 929 | "subjectFormatId": "a", 930 | "selectorSubjectFormatA": { 931 | "selectLists": ".fed-part-eone.fed-font-xvi a", 932 | "preferShorterName": true 933 | }, 934 | "selectorSubjectFormatIndexed": { 935 | "selectNames": ".search-box .thumb-content > .thumb-txt", 936 | "selectLinks": ".search-box .thumb-menu > a", 937 | "preferShorterName": true 938 | }, 939 | "selectorSubjectFormatJsonPathIndexed": { 940 | "selectLinks": "$[*]['url', 'link']", 941 | "selectNames": "$[*]['title','name']", 942 | "preferShorterName": true 943 | }, 944 | "channelFormatId": "index-grouped", 945 | "selectorChannelFormatFlattened": { 946 | "selectChannelNames": ".fed-play-btns.fed-drop-btns.fed-padding.fed-col-xs3.fed-col-md2", 947 | "matchChannelName": "", 948 | "selectEpisodeLists": ".fed-padding.fed-col-xs3.fed-col-md2.fed-col-lg1", 949 | "selectEpisodesFromList": "a", 950 | "selectEpisodeLinksFromList": "", 951 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 952 | }, 953 | "selectorChannelFormatNoChannel": { 954 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 955 | "selectEpisodeLinks": "", 956 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 957 | }, 958 | "defaultResolution": "1080P", 959 | "defaultSubtitleLanguage": "CHS", 960 | "onlySupportsPlayers": [], 961 | "filterByEpisodeSort": true, 962 | "filterBySubjectName": true, 963 | "selectMedia": { 964 | "distinguishSubjectName": true, 965 | "distinguishChannelName": true 966 | }, 967 | "matchVideo": { 968 | "enableNestedUrl": true, 969 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 970 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 971 | "cookies": "quality=1080", 972 | "addHeadersToVideo": { 973 | "referer": "", 974 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 975 | } 976 | } 977 | } 978 | } 979 | }, 980 | { 981 | "factoryId": "web-selector", 982 | "version": 2, 983 | "arguments": { 984 | "name": "叽哔动漫", 985 | "description": "", 986 | "iconUrl": "https://www.jibi.cc/upload/mxprocms/20240530-1/811f55cb787194c59e3f6d1d8724571c.jpg", 987 | "searchConfig": { 988 | "searchUrl": "https://www.jibi.cc/index.php/vod/search.html?wd={keyword}", 989 | "searchUseOnlyFirstWord": false, 990 | "searchRemoveSpecial": true, 991 | "searchUseSubjectNamesCount": 1, 992 | "rawBaseUrl": "", 993 | "requestInterval": 3000, 994 | "subjectFormatId": "indexed", 995 | "selectorSubjectFormatA": { 996 | "selectLists": "div.module-card-item-title > a", 997 | "preferShorterName": true 998 | }, 999 | "selectorSubjectFormatIndexed": { 1000 | "selectNames": ".module-card-item-title > a", 1001 | "selectLinks": ".module-card-item-title > a", 1002 | "preferShorterName": true 1003 | }, 1004 | "selectorSubjectFormatJsonPathIndexed": { 1005 | "selectLinks": "$[*]['url', 'link']", 1006 | "selectNames": "$[*]['title','name']", 1007 | "preferShorterName": true 1008 | }, 1009 | "channelFormatId": "index-grouped", 1010 | "selectorChannelFormatFlattened": { 1011 | "selectChannelNames": ".module-tab-item.tab-item", 1012 | "matchChannelName": "^(?.+?)$", 1013 | "selectEpisodeLists": ".module-play-list-content", 1014 | "selectEpisodesFromList": "a", 1015 | "selectEpisodeLinksFromList": "", 1016 | "matchEpisodeSortFromName": "第\\s*(?\\d+)" 1017 | }, 1018 | "selectorChannelFormatNoChannel": { 1019 | "selectEpisodes": "div.module-blocklist > div > a", 1020 | "selectEpisodeLinks": "a", 1021 | "matchEpisodeSortFromName": "第\\s*(?\\d+)" 1022 | }, 1023 | "defaultResolution": "1080P", 1024 | "defaultSubtitleLanguage": "CHS", 1025 | "onlySupportsPlayers": [], 1026 | "filterByEpisodeSort": true, 1027 | "filterBySubjectName": true, 1028 | "selectMedia": { 1029 | "distinguishSubjectName": true, 1030 | "distinguishChannelName": true 1031 | }, 1032 | "matchVideo": { 1033 | "enableNestedUrl": true, 1034 | "matchNestedUrl": "^.+(m3u8|cdn|vip|xigua\\.php).+\\?", 1035 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1036 | "cookies": "quality=1080", 1037 | "addHeadersToVideo": { 1038 | "referer": "", 1039 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)" 1040 | } 1041 | } 1042 | } 1043 | } 1044 | }, 1045 | { 1046 | "factoryId": "web-selector", 1047 | "version": 2, 1048 | "arguments": { 1049 | "name": "影视森林", 1050 | "description": "", 1051 | "iconUrl": "http://www.hc34567.com/static/images/logo.png", 1052 | "searchConfig": { 1053 | "searchUrl": "http://www.hc34567.com/hcvodsearch/{keyword}----------1---.html", 1054 | "searchUseOnlyFirstWord": false, 1055 | "searchRemoveSpecial": true, 1056 | "searchUseSubjectNamesCount": 1, 1057 | "rawBaseUrl": "", 1058 | "requestInterval": 3000, 1059 | "subjectFormatId": "a", 1060 | "selectorSubjectFormatA": { 1061 | "selectLists": ".title > a", 1062 | "preferShorterName": true 1063 | }, 1064 | "selectorSubjectFormatIndexed": { 1065 | "selectNames": ".search-box .thumb-content > .thumb-txt", 1066 | "selectLinks": ".search-box .thumb-menu > a", 1067 | "preferShorterName": true 1068 | }, 1069 | "selectorSubjectFormatJsonPathIndexed": { 1070 | "selectLinks": "$[*]['url', 'link']", 1071 | "selectNames": "$[*]['title','name']", 1072 | "preferShorterName": true 1073 | }, 1074 | "channelFormatId": "no-channel", 1075 | "selectorChannelFormatFlattened": { 1076 | "selectChannelNames": ".anthology-tab > .swiper-wrapper a", 1077 | "matchChannelName": "^(?.+?)(\\d+)?$", 1078 | "selectEpisodeLists": ".anthology-list-box", 1079 | "selectEpisodesFromList": "a", 1080 | "selectEpisodeLinksFromList": "", 1081 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1082 | }, 1083 | "selectorChannelFormatNoChannel": { 1084 | "selectEpisodes": ".myui-content__list a", 1085 | "selectEpisodeLinks": "", 1086 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1087 | }, 1088 | "defaultResolution": "1080P", 1089 | "defaultSubtitleLanguage": "CHS", 1090 | "onlySupportsPlayers": [], 1091 | "filterByEpisodeSort": true, 1092 | "filterBySubjectName": true, 1093 | "selectMedia": { 1094 | "distinguishSubjectName": true, 1095 | "distinguishChannelName": true 1096 | }, 1097 | "matchVideo": { 1098 | "enableNestedUrl": true, 1099 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1100 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1101 | "cookies": "quality=1080", 1102 | "addHeadersToVideo": { 1103 | "referer": "", 1104 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1105 | } 1106 | } 1107 | } 1108 | } 1109 | }, 1110 | { 1111 | "factoryId": "web-selector", 1112 | "version": 2, 1113 | "arguments": { 1114 | "name": "佩可爱动漫", 1115 | "description": "", 1116 | "iconUrl": "https://www.miaoaaa.com/wp-content/uploads/2023/09/pekolove.com_.png", 1117 | "searchConfig": { 1118 | "searchUrl": "https://acg.pekolove.net/?s={keyword}", 1119 | "searchUseOnlyFirstWord": false, 1120 | "searchRemoveSpecial": true, 1121 | "searchUseSubjectNamesCount": 1, 1122 | "rawBaseUrl": "", 1123 | "requestInterval": 3000, 1124 | "subjectFormatId": "a", 1125 | "selectorSubjectFormatA": { 1126 | "selectLists": ".wp-block-post-title > a", 1127 | "preferShorterName": true 1128 | }, 1129 | "selectorSubjectFormatIndexed": { 1130 | "selectNames": "", 1131 | "selectLinks": "", 1132 | "preferShorterName": true 1133 | }, 1134 | "selectorSubjectFormatJsonPathIndexed": { 1135 | "selectLinks": "$[*]['url', 'link']", 1136 | "selectNames": "$[*]['title','name']", 1137 | "preferShorterName": true 1138 | }, 1139 | "channelFormatId": "no-channel", 1140 | "selectorChannelFormatFlattened": { 1141 | "selectChannelNames": ".anthology-tab > .swiper-wrapper a", 1142 | "matchChannelName": "^(?.+?)(\\d+)?$", 1143 | "selectEpisodeLists": ".anthology-list-box", 1144 | "selectEpisodesFromList": "a", 1145 | "selectEpisodeLinksFromList": "", 1146 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1147 | }, 1148 | "selectorChannelFormatNoChannel": { 1149 | "selectEpisodes": ".wp-block-column.is-layout-flow.wp-block-column-is-layout-flow > a", 1150 | "selectEpisodeLinks": "", 1151 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1152 | }, 1153 | "defaultResolution": "1080P", 1154 | "defaultSubtitleLanguage": "CHS", 1155 | "onlySupportsPlayers": [], 1156 | "filterByEpisodeSort": true, 1157 | "filterBySubjectName": true, 1158 | "selectMedia": { 1159 | "distinguishSubjectName": true, 1160 | "distinguishChannelName": true 1161 | }, 1162 | "matchVideo": { 1163 | "enableNestedUrl": true, 1164 | "matchNestedUrl": "^.+(index|css|m3u8|vip|xigua\\.php).+\\?", 1165 | "matchVideoUrl": "(?https?:\\/\\/(?:[^/]*\\.)?(?:hn\\.bfvvs|modujx\\w*|rrcdnbf\\w*|lz-cdn\\w*|v\\.cdnlz\\w*|bfikuncdn|cdn\\.wlcdn\\w*|tlkqc|vip\\.ffzy-play\\w*|vip\\.ffzy-online\\w*|svipsvip\\.ffzy-online\\w*|svip\\.high\\w*|v\\w*\\.fentvoss)\\S+\\.(?:mp4|mkv|m3u8)(?:\\?.+)?)", 1166 | "cookies": "quality=1080", 1167 | "addHeadersToVideo": { 1168 | "referer": "", 1169 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1170 | } 1171 | } 1172 | } 1173 | } 1174 | }, 1175 | { 1176 | "factoryId": "web-selector", 1177 | "version": 2, 1178 | "arguments": { 1179 | "name": "火狼动漫", 1180 | "description": "可看里番", 1181 | "iconUrl": "https://huolangdm2.net/favicon.ico", 1182 | "searchConfig": { 1183 | "searchUrl": "https://huolangdm2.net/search/{keyword}", 1184 | "searchUseOnlyFirstWord": false, 1185 | "searchRemoveSpecial": true, 1186 | "searchUseSubjectNamesCount": 1, 1187 | "rawBaseUrl": "", 1188 | "requestInterval": 3000, 1189 | "subjectFormatId": "indexed", 1190 | "selectorSubjectFormatA": { 1191 | "selectLists": "", 1192 | "preferShorterName": true 1193 | }, 1194 | "selectorSubjectFormatIndexed": { 1195 | "selectNames": ".text-ellipsis.text-mr-1", 1196 | "selectLinks": ".col-md-2 a", 1197 | "preferShorterName": true 1198 | }, 1199 | "selectorSubjectFormatJsonPathIndexed": { 1200 | "selectLinks": "$[*]['url', 'link']", 1201 | "selectNames": "$[*]['title','name']", 1202 | "preferShorterName": true 1203 | }, 1204 | "channelFormatId": "index-grouped", 1205 | "selectorChannelFormatFlattened": { 1206 | "selectChannelNames": "ul.nav.nav-tabs.ff-playurl-tab > li", 1207 | "matchChannelName": "^(?.+?)(\\d+)?$", 1208 | "selectEpisodeLists": "ul.list-unstyled", 1209 | "selectEpisodesFromList": "a", 1210 | "selectEpisodeLinksFromList": "", 1211 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1212 | }, 1213 | "selectorChannelFormatNoChannel": { 1214 | "selectEpisodes": "", 1215 | "selectEpisodeLinks": "", 1216 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1217 | }, 1218 | "defaultResolution": "1080P", 1219 | "defaultSubtitleLanguage": "CHS", 1220 | "onlySupportsPlayers": [], 1221 | "filterByEpisodeSort": true, 1222 | "filterBySubjectName": true, 1223 | "selectMedia": { 1224 | "distinguishSubjectName": true, 1225 | "distinguishChannelName": true 1226 | }, 1227 | "matchVideo": { 1228 | "enableNestedUrl": true, 1229 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1230 | "matchVideoUrl": "(?https?:\\/\\/(?:[^/]*\\.)?(?:hn\\.bfvvs|modujx\\w*|rrcdnbf\\w*|lz-cdn\\w*|v\\.cdnlz\\w*|bfikuncdn|cdn\\.wlcdn\\w*|tlkqc|vip\\.ffzy-play\\w*|vip\\.ffzy-online\\w*|svipsvip\\.ffzy-online\\w*)\\S+\\.(?:mp4|mkv|m3u8)(?:\\?.+)?)", 1231 | "cookies": "quality=1080", 1232 | "addHeadersToVideo": { 1233 | "referer": "", 1234 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1235 | } 1236 | } 1237 | } 1238 | } 1239 | }, 1240 | { 1241 | "factoryId": "web-selector", 1242 | "version": 2, 1243 | "arguments": { 1244 | "name": "蚂蚁影视", 1245 | "description": "", 1246 | "iconUrl": "https://cdn.aiqingyu1314.com/mayi/statics/img/favicon.ico", 1247 | "searchConfig": { 1248 | "searchUrl": "https://www.mayi520.cc/vodsearch/-------------.html?wd={keyword}&sq=yes", 1249 | "searchUseOnlyFirstWord": false, 1250 | "searchRemoveSpecial": true, 1251 | "searchUseSubjectNamesCount": 1, 1252 | "rawBaseUrl": "", 1253 | "requestInterval": 3000, 1254 | "subjectFormatId": "a", 1255 | "selectorSubjectFormatA": { 1256 | "selectLists": ".active > .thumb a", 1257 | "preferShorterName": true 1258 | }, 1259 | "selectorSubjectFormatIndexed": { 1260 | "selectNames": ".search-box .thumb-content > .thumb-txt", 1261 | "selectLinks": ".search-box .thumb-menu > a", 1262 | "preferShorterName": true 1263 | }, 1264 | "selectorSubjectFormatJsonPathIndexed": { 1265 | "selectLinks": "$[*]['url', 'link']", 1266 | "selectNames": "$[*]['title','name']", 1267 | "preferShorterName": true 1268 | }, 1269 | "channelFormatId": "index-grouped", 1270 | "selectorChannelFormatFlattened": { 1271 | "selectChannelNames": ".play_source.clearfix a", 1272 | "matchChannelName": "^(?.+?)(\\d+)?$", 1273 | "selectEpisodeLists": ".stui-content__playlist.play_source_list_item", 1274 | "selectEpisodesFromList": "a", 1275 | "selectEpisodeLinksFromList": "", 1276 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1277 | }, 1278 | "selectorChannelFormatNoChannel": { 1279 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 1280 | "selectEpisodeLinks": "", 1281 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1282 | }, 1283 | "defaultResolution": "1080P", 1284 | "defaultSubtitleLanguage": "CHS", 1285 | "onlySupportsPlayers": [], 1286 | "filterByEpisodeSort": true, 1287 | "filterBySubjectName": true, 1288 | "selectMedia": { 1289 | "distinguishSubjectName": true, 1290 | "distinguishChannelName": true 1291 | }, 1292 | "matchVideo": { 1293 | "enableNestedUrl": false, 1294 | "matchNestedUrl": "https?://[^\\s]+?(m3u8|vip|xigua\\.php)[^\\s]*?\\?", 1295 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1296 | "cookies": "quality=1080", 1297 | "addHeadersToVideo": { 1298 | "referer": "", 1299 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1300 | } 1301 | } 1302 | } 1303 | } 1304 | }, 1305 | { 1306 | "factoryId": "web-selector", 1307 | "version": 2, 1308 | "arguments": { 1309 | "name": "A影院", 1310 | "description": "", 1311 | "iconUrl": "https://cdn.wyteam.net/webapps/maccms/template/blueghost/img/favicon.ico", 1312 | "searchConfig": { 1313 | "searchUrl": "https://www.appmovie.click/index.php/vod/search.html?wd={keyword}&submit=", 1314 | "searchUseOnlyFirstWord": false, 1315 | "searchRemoveSpecial": true, 1316 | "searchUseSubjectNamesCount": 1, 1317 | "rawBaseUrl": "", 1318 | "requestInterval": 3000, 1319 | "subjectFormatId": "a", 1320 | "selectorSubjectFormatA": { 1321 | "selectLists": ".stui-vodlist__item > a", 1322 | "preferShorterName": true 1323 | }, 1324 | "selectorSubjectFormatIndexed": { 1325 | "selectNames": ".search-box .thumb-content > .thumb-txt", 1326 | "selectLinks": ".search-box .thumb-menu > a", 1327 | "preferShorterName": true 1328 | }, 1329 | "selectorSubjectFormatJsonPathIndexed": { 1330 | "selectLinks": "$[*]['url', 'link']", 1331 | "selectNames": "$[*]['title','name']", 1332 | "preferShorterName": true 1333 | }, 1334 | "channelFormatId": "index-grouped", 1335 | "selectorChannelFormatFlattened": { 1336 | "selectChannelNames": ".stui-pannel:not(#desc) .stui-pannel__head:has(> .more) > h3.title", 1337 | "matchChannelName": "^(?.+?)(\\d+)?$", 1338 | "selectEpisodeLists": ".stui-content__playlist", 1339 | "selectEpisodesFromList": "a", 1340 | "selectEpisodeLinksFromList": "", 1341 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1342 | }, 1343 | "selectorChannelFormatNoChannel": { 1344 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 1345 | "selectEpisodeLinks": "", 1346 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1347 | }, 1348 | "defaultResolution": "1080P", 1349 | "defaultSubtitleLanguage": "CHS", 1350 | "onlySupportsPlayers": [], 1351 | "filterByEpisodeSort": true, 1352 | "filterBySubjectName": true, 1353 | "selectMedia": { 1354 | "distinguishSubjectName": true, 1355 | "distinguishChannelName": true 1356 | }, 1357 | "matchVideo": { 1358 | "enableNestedUrl": true, 1359 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1360 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1361 | "cookies": "quality=1080", 1362 | "addHeadersToVideo": { 1363 | "referer": "", 1364 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1365 | } 1366 | } 1367 | } 1368 | } 1369 | }, 1370 | { 1371 | "factoryId": "web-selector", 1372 | "version": 2, 1373 | "arguments": { 1374 | "name": "饭团动漫(替换)", 1375 | "description": "", 1376 | "iconUrl": "https://acgpost.com/template/ft-v2/icon/acgfantuan-icon-72.png", 1377 | "searchConfig": { 1378 | "searchUrl": "https://acgpost.com/search.html?wd={keyword}", 1379 | "searchUseOnlyFirstWord": false, 1380 | "searchRemoveSpecial": true, 1381 | "searchUseSubjectNamesCount": 1, 1382 | "rawBaseUrl": "", 1383 | "requestInterval": 3000, 1384 | "subjectFormatId": "a", 1385 | "selectorSubjectFormatA": { 1386 | "selectLists": "body > main > div > div.mt-2-5 > div > div > div > a", 1387 | "preferShorterName": true 1388 | }, 1389 | "selectorSubjectFormatIndexed": { 1390 | "selectNames": ".search-box .thumb-content > .thumb-txt", 1391 | "selectLinks": ".search-box .thumb-menu > a", 1392 | "preferShorterName": true 1393 | }, 1394 | "selectorSubjectFormatJsonPathIndexed": { 1395 | "selectLinks": "$[*]['url', 'link']", 1396 | "selectNames": "$[*]['title','name']", 1397 | "preferShorterName": true 1398 | }, 1399 | "channelFormatId": "index-grouped", 1400 | "selectorChannelFormatFlattened": { 1401 | "selectChannelNames": "body > main > div > div.row.mt-1-25.mb-5 > div > div > div > ul > li > button", 1402 | "matchChannelName": "^(?.+?)(\\d+)?$", 1403 | "selectEpisodeLists": ".anime-episode", 1404 | "selectEpisodesFromList": "a", 1405 | "selectEpisodeLinksFromList": "", 1406 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1407 | }, 1408 | "selectorChannelFormatNoChannel": { 1409 | "selectEpisodes": "#线路一 > a", 1410 | "selectEpisodeLinks": "", 1411 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1412 | }, 1413 | "defaultResolution": "720P", 1414 | "defaultSubtitleLanguage": "CHS", 1415 | "onlySupportsPlayers": [], 1416 | "filterByEpisodeSort": true, 1417 | "filterBySubjectName": true, 1418 | "selectMedia": { 1419 | "distinguishSubjectName": true, 1420 | "distinguishChannelName": true 1421 | }, 1422 | "matchVideo": { 1423 | "enableNestedUrl": true, 1424 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1425 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/)(?!.*google-analytics).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(.+player/\\?url=(?.+))", 1426 | "cookies": "quality=1080", 1427 | "addHeadersToVideo": { 1428 | "referer": "", 1429 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1430 | } 1431 | } 1432 | } 1433 | } 1434 | }, 1435 | { 1436 | "factoryId": "web-selector", 1437 | "version": 2, 1438 | "arguments": { 1439 | "name": "风车动漫(里番)", 1440 | "description": "", 1441 | "iconUrl": "https://fcdm003.cc/template/zhiyan/assets/favicon.ico", 1442 | "searchConfig": { 1443 | "searchUrl": "https://fcdm003.cc/see.html?wd={keyword}", 1444 | "searchUseOnlyFirstWord": false, 1445 | "searchRemoveSpecial": true, 1446 | "searchUseSubjectNamesCount": 1, 1447 | "rawBaseUrl": "", 1448 | "requestInterval": 3000, 1449 | "subjectFormatId": "indexed", 1450 | "selectorSubjectFormatA": { 1451 | "selectLists": "div.info p:nth-child(5) a", 1452 | "preferShorterName": true 1453 | }, 1454 | "selectorSubjectFormatIndexed": { 1455 | "selectNames": "div.info > p:first-child > a", 1456 | "selectLinks": "div.info > p:last-child > span > a", 1457 | "preferShorterName": true 1458 | }, 1459 | "selectorSubjectFormatJsonPathIndexed": { 1460 | "selectLinks": "$[*]['url', 'link']", 1461 | "selectNames": "$[*]['title','name']", 1462 | "preferShorterName": true 1463 | }, 1464 | "channelFormatId": "index-grouped", 1465 | "selectorChannelFormatFlattened": { 1466 | "selectChannelNames": ".mxianlu > a", 1467 | "matchChannelName": "^(?.+?)(\\d+)?$", 1468 | "selectEpisodeLists": ".jisu", 1469 | "selectEpisodesFromList": "a", 1470 | "selectEpisodeLinksFromList": "", 1471 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1472 | }, 1473 | "selectorChannelFormatNoChannel": { 1474 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 1475 | "selectEpisodeLinks": "", 1476 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1477 | }, 1478 | "defaultResolution": "720P", 1479 | "defaultSubtitleLanguage": "CHS", 1480 | "onlySupportsPlayers": [], 1481 | "filterByEpisodeSort": true, 1482 | "filterBySubjectName": true, 1483 | "selectMedia": { 1484 | "distinguishSubjectName": true, 1485 | "distinguishChannelName": true 1486 | }, 1487 | "matchVideo": { 1488 | "enableNestedUrl": true, 1489 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1490 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1491 | "cookies": "quality=1080", 1492 | "addHeadersToVideo": { 1493 | "referer": "", 1494 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1495 | } 1496 | } 1497 | } 1498 | } 1499 | }, 1500 | { 1501 | "factoryId": "web-selector", 1502 | "version": 2, 1503 | "arguments": { 1504 | "name": "风车动漫", 1505 | "description": "", 1506 | "iconUrl": "https://dmfengche.cc/template/zhiyan/assets/favicon.ico", 1507 | "searchConfig": { 1508 | "searchUrl": "https://dmfengche.cc/search/-------------.html?wd={keyword}", 1509 | "searchUseOnlyFirstWord": false, 1510 | "searchRemoveSpecial": true, 1511 | "searchUseSubjectNamesCount": 1, 1512 | "rawBaseUrl": "", 1513 | "requestInterval": 3000, 1514 | "subjectFormatId": "indexed", 1515 | "selectorSubjectFormatA": { 1516 | "selectLists": "", 1517 | "preferShorterName": true 1518 | }, 1519 | "selectorSubjectFormatIndexed": { 1520 | "selectNames": "div.info > p:first-child > a", 1521 | "selectLinks": "div.info > p:last-child > span > a", 1522 | "preferShorterName": true 1523 | }, 1524 | "selectorSubjectFormatJsonPathIndexed": { 1525 | "selectLinks": "$[*]['url', 'link']", 1526 | "selectNames": "$[*]['title','name']", 1527 | "preferShorterName": true 1528 | }, 1529 | "channelFormatId": "index-grouped", 1530 | "selectorChannelFormatFlattened": { 1531 | "selectChannelNames": ".mxianlu.animate__animated.animate__fadeInUp > a", 1532 | "matchChannelName": "^(?.+?)(\\d+)?$", 1533 | "selectEpisodeLists": ".jisu", 1534 | "selectEpisodesFromList": "a", 1535 | "selectEpisodeLinksFromList": "", 1536 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1537 | }, 1538 | "selectorChannelFormatNoChannel": { 1539 | "selectEpisodes": ".jisu > a", 1540 | "selectEpisodeLinks": "", 1541 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1542 | }, 1543 | "defaultResolution": "720P", 1544 | "defaultSubtitleLanguage": "CHS", 1545 | "onlySupportsPlayers": [], 1546 | "filterByEpisodeSort": true, 1547 | "filterBySubjectName": true, 1548 | "selectMedia": { 1549 | "distinguishSubjectName": true, 1550 | "distinguishChannelName": true 1551 | }, 1552 | "matchVideo": { 1553 | "enableNestedUrl": true, 1554 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1555 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1556 | "cookies": "quality=1080", 1557 | "addHeadersToVideo": { 1558 | "referer": "", 1559 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1560 | } 1561 | } 1562 | } 1563 | } 1564 | }, 1565 | { 1566 | "factoryId": "web-selector", 1567 | "version": 2, 1568 | "arguments": { 1569 | "name": "影视大全", 1570 | "description": "可看里番", 1571 | "iconUrl": "https://cctv5566.cc/favicon.ico", 1572 | "searchConfig": { 1573 | "searchUrl": "https://cctv5566.cc/s/{keyword}/8/1/", 1574 | "searchUseOnlyFirstWord": false, 1575 | "searchRemoveSpecial": true, 1576 | "searchUseSubjectNamesCount": 1, 1577 | "rawBaseUrl": "", 1578 | "requestInterval": 3000, 1579 | "subjectFormatId": "a", 1580 | "selectorSubjectFormatA": { 1581 | "selectLists": ".title > a", 1582 | "preferShorterName": true 1583 | }, 1584 | "selectorSubjectFormatIndexed": { 1585 | "selectNames": ".search-box .thumb-content > .thumb-txt", 1586 | "selectLinks": ".search-box .thumb-menu > a", 1587 | "preferShorterName": true 1588 | }, 1589 | "selectorSubjectFormatJsonPathIndexed": { 1590 | "selectLinks": "$[*]['url', 'link']", 1591 | "selectNames": "$[*]['title','name']", 1592 | "preferShorterName": true 1593 | }, 1594 | "channelFormatId": "index-grouped", 1595 | "selectorChannelFormatFlattened": { 1596 | "selectChannelNames": ".con-pannel-title:last-child > h3.title", 1597 | "matchChannelName": "^(?.+?)(\\d+)?$", 1598 | "selectEpisodeLists": ".lists", 1599 | "selectEpisodesFromList": "a", 1600 | "selectEpisodeLinksFromList": "", 1601 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1602 | }, 1603 | "selectorChannelFormatNoChannel": { 1604 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 1605 | "selectEpisodeLinks": "", 1606 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1607 | }, 1608 | "defaultResolution": "1080P", 1609 | "defaultSubtitleLanguage": "CHS", 1610 | "onlySupportsPlayers": [], 1611 | "filterByEpisodeSort": true, 1612 | "filterBySubjectName": true, 1613 | "selectMedia": { 1614 | "distinguishSubjectName": true, 1615 | "distinguishChannelName": true 1616 | }, 1617 | "matchVideo": { 1618 | "enableNestedUrl": true, 1619 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1620 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1621 | "cookies": "quality=1080", 1622 | "addHeadersToVideo": { 1623 | "referer": "", 1624 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1625 | } 1626 | } 1627 | } 1628 | } 1629 | }, 1630 | { 1631 | "factoryId": "web-selector", 1632 | "version": 2, 1633 | "arguments": { 1634 | "name": "新视觉影院", 1635 | "description": "可看里番", 1636 | "iconUrl": "https://www.sclgvs.com/template/shoutu40/assets/images/favicon.ico", 1637 | "searchConfig": { 1638 | "searchUrl": "https://www.sclgvs.com/yy6080search/-------------/?wd={keyword}", 1639 | "searchUseOnlyFirstWord": false, 1640 | "searchRemoveSpecial": true, 1641 | "searchUseSubjectNamesCount": 1, 1642 | "rawBaseUrl": "", 1643 | "requestInterval": 3000, 1644 | "subjectFormatId": "a", 1645 | "selectorSubjectFormatA": { 1646 | "selectLists": ".title > a", 1647 | "preferShorterName": true 1648 | }, 1649 | "selectorSubjectFormatIndexed": { 1650 | "selectNames": ".search-box .thumb-content > .thumb-txt", 1651 | "selectLinks": ".search-box .thumb-menu > a", 1652 | "preferShorterName": true 1653 | }, 1654 | "selectorSubjectFormatJsonPathIndexed": { 1655 | "selectLinks": "$[*]['url', 'link']", 1656 | "selectNames": "$[*]['title','name']", 1657 | "preferShorterName": true 1658 | }, 1659 | "channelFormatId": "index-grouped", 1660 | "selectorChannelFormatFlattened": { 1661 | "selectChannelNames": ".swiper-wrapper a", 1662 | "matchChannelName": "^(?.+?)(\\d+)?$", 1663 | "selectEpisodeLists": "#playsx", 1664 | "selectEpisodesFromList": "a", 1665 | "selectEpisodeLinksFromList": "", 1666 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1667 | }, 1668 | "selectorChannelFormatNoChannel": { 1669 | "selectEpisodes": "#playsx .ep-item a", 1670 | "selectEpisodeLinks": "", 1671 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1672 | }, 1673 | "defaultResolution": "1080P", 1674 | "defaultSubtitleLanguage": "CHS", 1675 | "onlySupportsPlayers": [], 1676 | "filterByEpisodeSort": true, 1677 | "filterBySubjectName": true, 1678 | "selectMedia": { 1679 | "distinguishSubjectName": true, 1680 | "distinguishChannelName": true 1681 | }, 1682 | "matchVideo": { 1683 | "enableNestedUrl": true, 1684 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1685 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1686 | "cookies": "quality=1080", 1687 | "addHeadersToVideo": { 1688 | "referer": "", 1689 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1690 | } 1691 | } 1692 | } 1693 | } 1694 | }, 1695 | { 1696 | "factoryId": "web-selector", 1697 | "version": 2, 1698 | "arguments": { 1699 | "name": "风车动漫2", 1700 | "description": "", 1701 | "iconUrl": "https://cdn.yinghuazy.xyz/webjs/stui_tpl/statics/img/favicon.ico", 1702 | "searchConfig": { 1703 | "searchUrl": "https://www.dmla5.com/search/-------------.html?wd={keyword}", 1704 | "searchUseOnlyFirstWord": false, 1705 | "searchRemoveSpecial": true, 1706 | "searchUseSubjectNamesCount": 1, 1707 | "rawBaseUrl": "", 1708 | "requestInterval": 3000, 1709 | "subjectFormatId": "a", 1710 | "selectorSubjectFormatA": { 1711 | "selectLists": ".title > a", 1712 | "preferShorterName": true 1713 | }, 1714 | "selectorSubjectFormatIndexed": { 1715 | "selectNames": ".search-box .thumb-content > .thumb-txt", 1716 | "selectLinks": ".search-box .thumb-menu > a", 1717 | "preferShorterName": true 1718 | }, 1719 | "selectorSubjectFormatJsonPathIndexed": { 1720 | "selectLinks": "$[*]['url', 'link']", 1721 | "selectNames": "$[*]['title','name']", 1722 | "preferShorterName": true 1723 | }, 1724 | "channelFormatId": "index-grouped", 1725 | "selectorChannelFormatFlattened": { 1726 | "selectChannelNames": ".nav.nav-tabs > li", 1727 | "matchChannelName": "^(?.+?)(\\d+)?$", 1728 | "selectEpisodeLists": ".stui-content__playlist.clearfix", 1729 | "selectEpisodesFromList": "a", 1730 | "selectEpisodeLinksFromList": "", 1731 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1732 | }, 1733 | "selectorChannelFormatNoChannel": { 1734 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 1735 | "selectEpisodeLinks": "", 1736 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1737 | }, 1738 | "defaultResolution": "1080P", 1739 | "defaultSubtitleLanguage": "CHS", 1740 | "onlySupportsPlayers": [], 1741 | "filterByEpisodeSort": true, 1742 | "filterBySubjectName": true, 1743 | "selectMedia": { 1744 | "distinguishSubjectName": true, 1745 | "distinguishChannelName": true 1746 | }, 1747 | "matchVideo": { 1748 | "enableNestedUrl": true, 1749 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1750 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1751 | "cookies": "quality=1080", 1752 | "addHeadersToVideo": { 1753 | "referer": "", 1754 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1755 | } 1756 | } 1757 | } 1758 | } 1759 | }, 1760 | { 1761 | "factoryId": "web-selector", 1762 | "version": 2, 1763 | "arguments": { 1764 | "name": "蜜桃动漫", 1765 | "description": "", 1766 | "iconUrl": "https://www.mitaodm.com/template/jianbai/statics/img/favicon.ico", 1767 | "searchConfig": { 1768 | "searchUrl": "https://www.mitaodm.com/vodsearch.html?wd={keyword}&submit=", 1769 | "searchUseOnlyFirstWord": true, 1770 | "searchRemoveSpecial": true, 1771 | "searchUseSubjectNamesCount": 1, 1772 | "rawBaseUrl": "", 1773 | "requestInterval": 3000, 1774 | "subjectFormatId": "a", 1775 | "selectorSubjectFormatA": { 1776 | "selectLists": "div > div > h4 > a", 1777 | "preferShorterName": true 1778 | }, 1779 | "selectorSubjectFormatIndexed": { 1780 | "selectNames": ".search-box .thumb-content > .thumb-txt", 1781 | "selectLinks": ".search-box .thumb-menu > a", 1782 | "preferShorterName": true 1783 | }, 1784 | "selectorSubjectFormatJsonPathIndexed": { 1785 | "selectLinks": "$[*]['url', 'link']", 1786 | "selectNames": "$[*]['title','name']", 1787 | "preferShorterName": true 1788 | }, 1789 | "channelFormatId": "index-grouped", 1790 | "selectorChannelFormatFlattened": { 1791 | "selectChannelNames": "div.stui-vodlist__head > h3.title", 1792 | "matchChannelName": "^(?.+?)(\\d+)?$", 1793 | "selectEpisodeLists": "div.stui-vodlist__head > .stui-content__playlist", 1794 | "selectEpisodesFromList": "a", 1795 | "selectEpisodeLinksFromList": "", 1796 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1797 | }, 1798 | "selectorChannelFormatNoChannel": { 1799 | "selectEpisodes": "#glist-1 > div.module-blocklist.scroll-box.scroll-box-y > div > a", 1800 | "selectEpisodeLinks": "", 1801 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1802 | }, 1803 | "defaultResolution": "1080P", 1804 | "defaultSubtitleLanguage": "CHS", 1805 | "onlySupportsPlayers": [], 1806 | "filterByEpisodeSort": true, 1807 | "filterBySubjectName": true, 1808 | "selectMedia": { 1809 | "distinguishSubjectName": true, 1810 | "distinguishChannelName": true 1811 | }, 1812 | "matchVideo": { 1813 | "enableNestedUrl": true, 1814 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1815 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1816 | "cookies": "quality=1080", 1817 | "addHeadersToVideo": { 1818 | "referer": "", 1819 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1820 | } 1821 | } 1822 | } 1823 | } 1824 | }, 1825 | { 1826 | "factoryId": "web-selector", 1827 | "version": 2, 1828 | "arguments": { 1829 | "name": "趣动漫", 1830 | "description": "", 1831 | "iconUrl": "https://www.qdm66.com/favicon.ico", 1832 | "searchConfig": { 1833 | "searchUrl": "https://www.qdm66.com/search/-------------.html?wd={keyword}&submit=", 1834 | "searchUseOnlyFirstWord": true, 1835 | "searchRemoveSpecial": true, 1836 | "searchUseSubjectNamesCount": 1, 1837 | "rawBaseUrl": "", 1838 | "requestInterval": 3000, 1839 | "subjectFormatId": "a", 1840 | "selectorSubjectFormatA": { 1841 | "selectLists": "#searchList > li > div.detail > h4 > a", 1842 | "preferShorterName": true 1843 | }, 1844 | "selectorSubjectFormatIndexed": { 1845 | "selectNames": ".search-box .thumb-content > .thumb-txt", 1846 | "selectLinks": ".search-box .thumb-menu > a", 1847 | "preferShorterName": true 1848 | }, 1849 | "selectorSubjectFormatJsonPathIndexed": { 1850 | "selectLinks": "$[*]['url', 'link']", 1851 | "selectNames": "$[*]['title','name']", 1852 | "preferShorterName": true 1853 | }, 1854 | "channelFormatId": "index-grouped", 1855 | "selectorChannelFormatFlattened": { 1856 | "selectChannelNames": "body > div.container > div > div.col-md-wide-7.col-xs-1.padding-0 > div:nth-child(4) > div > div.myui-panel_hd > div > ul > li > a", 1857 | "matchChannelName": "^(?.+?)(\\d+)?$", 1858 | "selectEpisodeLists": "body > div.container > div > div.col-md-wide-7.col-xs-1.padding-0 > div:nth-child(4) > div > div.tab-content.myui-panel_bd > div", 1859 | "selectEpisodesFromList": "a", 1860 | "selectEpisodeLinksFromList": "", 1861 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1862 | }, 1863 | "selectorChannelFormatNoChannel": { 1864 | "selectEpisodes": "#playlist1 > ul > li > a", 1865 | "selectEpisodeLinks": "", 1866 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1867 | }, 1868 | "defaultResolution": "1080P", 1869 | "defaultSubtitleLanguage": "CHS", 1870 | "onlySupportsPlayers": [], 1871 | "filterByEpisodeSort": true, 1872 | "filterBySubjectName": true, 1873 | "selectMedia": { 1874 | "distinguishSubjectName": true, 1875 | "distinguishChannelName": true 1876 | }, 1877 | "matchVideo": { 1878 | "enableNestedUrl": true, 1879 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1880 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1881 | "cookies": "quality=1080", 1882 | "addHeadersToVideo": { 1883 | "referer": "", 1884 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1885 | } 1886 | } 1887 | } 1888 | } 1889 | }, 1890 | { 1891 | "factoryId": "web-selector", 1892 | "version": 2, 1893 | "arguments": { 1894 | "name": "九兔动漫", 1895 | "description": "可看里番,部分地区被屏蔽", 1896 | "iconUrl": "https://www.9tdm.com/template/dm/img/favicon.ico", 1897 | "searchConfig": { 1898 | "searchUrl": "https://www.jtdm.cc/search/page/1/wd/{keyword}.html", 1899 | "searchUseOnlyFirstWord": true, 1900 | "rawBaseUrl": "", 1901 | "subjectFormatId": "a", 1902 | "selectorSubjectFormatA": { 1903 | "selectLists": "body > div.container-fluid > div > div.col-md-9.ms-sm-auto.col-lg-10.p-0.px-md-4 > div > ul > li > div > div.w-obj.flex-grow-1.mr-1.ps-3.overflow-hidden.fs-7.text-body-secondary > h3 > a", 1904 | "preferShorterName": true 1905 | }, 1906 | "selectorSubjectFormatIndexed": { 1907 | "selectNames": ".search-box .thumb-content > .thumb-txt", 1908 | "selectLinks": ".search-box .thumb-menu > a", 1909 | "preferShorterName": true 1910 | }, 1911 | "selectorSubjectFormatJsonPathIndexed": { 1912 | "selectLinks": "$[*]['url', 'link']", 1913 | "selectNames": "$[*]['title','name']", 1914 | "preferShorterName": true 1915 | }, 1916 | "channelFormatId": "index-grouped", 1917 | "selectorChannelFormatFlattened": { 1918 | "selectChannelNames": "body > div.container-fluid > div > div.col-md-9.ms-sm-auto.col-lg-10.p-0.px-md-4 > div.video-urls.bg-body.rounded.p-3.p-md-4.mt-3.mt-md-4 > div.form-floating > select > option", 1919 | "matchChannelName": "^(?.+?)(\\d+)?$", 1920 | "selectEpisodeLists": ".hl-plays-list", 1921 | "selectEpisodesFromList": "a", 1922 | "selectEpisodeLinksFromList": "", 1923 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1924 | }, 1925 | "selectorChannelFormatNoChannel": { 1926 | "selectEpisodes": "body > div.container-fluid > div > div.col-md-9.ms-sm-auto.col-lg-10.p-0.px-md-4 > div.video-urls.bg-body.rounded.p-3.p-md-4.mt-3.mt-md-4 > div.form-floating > select > option:nth-child(1)", 1927 | "selectEpisodeLinks": "", 1928 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1929 | }, 1930 | "filterByEpisodeSort": true, 1931 | "filterBySubjectName": true, 1932 | "selectMedia": { 1933 | "distinguishSubjectName": true, 1934 | "distinguishChannelName": true 1935 | }, 1936 | "matchVideo": { 1937 | "enableNestedUrl": true, 1938 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 1939 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 1940 | "cookies": "quality=1080", 1941 | "addHeadersToVideo": { 1942 | "referer": "", 1943 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 1944 | } 1945 | } 1946 | } 1947 | } 1948 | }, 1949 | { 1950 | "factoryId": "web-selector", 1951 | "version": 2, 1952 | "arguments": { 1953 | "name": "米粒动漫", 1954 | "description": "", 1955 | "iconUrl": "https://milimili.nl/favicon.ico", 1956 | "searchConfig": { 1957 | "searchUrl": "https://milimili.nl/search?q={keyword}", 1958 | "searchUseOnlyFirstWord": false, 1959 | "searchRemoveSpecial": true, 1960 | "searchUseSubjectNamesCount": 1, 1961 | "rawBaseUrl": "", 1962 | "requestInterval": 3000, 1963 | "subjectFormatId": "a", 1964 | "selectorSubjectFormatA": { 1965 | "selectLists": "#search_list > ul > li > h6 > a", 1966 | "preferShorterName": true 1967 | }, 1968 | "selectorSubjectFormatIndexed": { 1969 | "selectNames": "#search_list > ul > li > h6", 1970 | "selectLinks": ".list-unstyled a", 1971 | "preferShorterName": true 1972 | }, 1973 | "selectorSubjectFormatJsonPathIndexed": { 1974 | "selectLinks": "$[*]['url', 'link']", 1975 | "selectNames": "$[*]['title','name']", 1976 | "preferShorterName": true 1977 | }, 1978 | "channelFormatId": "no-channel", 1979 | "selectorChannelFormatFlattened": { 1980 | "selectChannelNames": "ul.menu-tabs > li", 1981 | "matchChannelName": "^(?.+?)(\\d+)?$", 1982 | "selectEpisodeLists": ".row.list-unstyled.gutters-1", 1983 | "selectEpisodesFromList": "a", 1984 | "selectEpisodeLinksFromList": "", 1985 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1986 | }, 1987 | "selectorChannelFormatNoChannel": { 1988 | "selectEpisodes": ".row.list-unstyled a", 1989 | "selectEpisodeLinks": "", 1990 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 1991 | }, 1992 | "defaultResolution": "1080P", 1993 | "defaultSubtitleLanguage": "CHS", 1994 | "onlySupportsPlayers": [], 1995 | "filterByEpisodeSort": true, 1996 | "filterBySubjectName": true, 1997 | "selectMedia": { 1998 | "distinguishSubjectName": true, 1999 | "distinguishChannelName": true 2000 | }, 2001 | "matchVideo": { 2002 | "enableNestedUrl": true, 2003 | "matchNestedUrl": "^.+(m3u8|vip|xigua\\.php).+\\?", 2004 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((\\.mp4)|(\\.mkv)|(m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)", 2005 | "cookies": "quality=1080", 2006 | "addHeadersToVideo": { 2007 | "referer": "", 2008 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 2009 | } 2010 | } 2011 | } 2012 | } 2013 | }, 2014 | { 2015 | "factoryId": "web-selector", 2016 | "version": 2, 2017 | "arguments": { 2018 | "name": "girigiri愛動漫(修复)", 2019 | "description": "", 2020 | "iconUrl": "https://anime.girigirilove.com/upload/site/20231121-1/fdd2694db66628a9deadd86e50aedd43.png", 2021 | "searchConfig": { 2022 | "searchUrl": "https://ani.girigirilove.com/search/-------------/?wd={keyword}", 2023 | "searchUseOnlyFirstWord": false, 2024 | "searchRemoveSpecial": true, 2025 | "searchUseSubjectNamesCount": 1, 2026 | "rawBaseUrl": "", 2027 | "requestInterval": 3000, 2028 | "subjectFormatId": "indexed", 2029 | "selectorSubjectFormatA": { 2030 | "selectLists": ".vod-detail-bnt a", 2031 | "preferShorterName": true 2032 | }, 2033 | "selectorSubjectFormatIndexed": { 2034 | "selectNames": ".slide-info-title.hide", 2035 | "selectLinks": ".vod-detail-bnt > a", 2036 | "preferShorterName": true 2037 | }, 2038 | "selectorSubjectFormatJsonPathIndexed": { 2039 | "selectLinks": "$[*]['url', 'link']", 2040 | "selectNames": "$[*]['title','name']", 2041 | "preferShorterName": true 2042 | }, 2043 | "channelFormatId": "index-grouped", 2044 | "selectorChannelFormatFlattened": { 2045 | "selectChannelNames": ".anthology-tab > .swiper-wrapper a", 2046 | "matchChannelName": "^(?.+?)(\\d+)?$", 2047 | "selectEpisodeLists": ".anthology-list-box", 2048 | "selectEpisodesFromList": "a", 2049 | "selectEpisodeLinksFromList": "", 2050 | "matchEpisodeSortFromName": "第\\s*(?.+)\\s*[话集]" 2051 | }, 2052 | "selectorChannelFormatNoChannel": { 2053 | "selectEpisodes": ".anthology-list-play a", 2054 | "selectEpisodeLinks": "", 2055 | "matchEpisodeSortFromName": "(第\\s*(?.+)\\s*[话集])|1080P" 2056 | }, 2057 | "defaultResolution": "1080P", 2058 | "defaultSubtitleLanguage": "CHS", 2059 | "onlySupportsPlayers": [], 2060 | "filterByEpisodeSort": true, 2061 | "filterBySubjectName": true, 2062 | "selectMedia": { 2063 | "distinguishSubjectName": true, 2064 | "distinguishChannelName": true 2065 | }, 2066 | "matchVideo": { 2067 | "enableNestedUrl": true, 2068 | "matchNestedUrl": "$^", 2069 | "matchVideoUrl": "(^http(s)?:\\/\\/(?!.*http(s)?:\\/\\/).+((m3u8)).*(\\?.+)?)|(akamaized)|(bilivideo.com)|(url=(?.+playlist.m3u8))", 2070 | "cookies": "quality=1080P", 2071 | "addHeadersToVideo": { 2072 | "referer": "", 2073 | "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" 2074 | } 2075 | } 2076 | } 2077 | } 2078 | } 2079 | ] 2080 | } 2081 | } 2082 | 2083 | 2084 | 2085 | 2086 | 2087 | --------------------------------------------------------------------------------