├── .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 | [](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 |
--------------------------------------------------------------------------------