Compare commits

...

21 Commits

Author SHA1 Message Date
GitHub Actions
46cddeff43 Update m3u 2025-12-27 05:36:47 +08:00
GitHub Actions
837853f949 Update m3u 2025-12-27 05:10:42 +08:00
GitHub Actions
0dc23cf940 Update m3u 2025-12-27 04:40:29 +08:00
GitHub Actions
24cfd50d0d Update m3u 2025-12-27 04:12:21 +08:00
GitHub Actions
b42aa3a59b Update m3u 2025-12-27 03:34:06 +08:00
GitHub Actions
69afe1ce36 Update m3u 2025-12-27 03:09:39 +08:00
GitHub Actions
fe968dc0f2 Update m3u 2025-12-27 02:49:21 +08:00
GitHub Actions
1300ef7076 Update m3u 2025-12-27 02:17:15 +08:00
cluntop
f6cb47a735
Update iptv.txt 2025-12-27 02:08:33 +08:00
GitHub Actions
533e701f9e Update m3u 2025-12-27 01:39:45 +08:00
GitHub Actions
0da506dfc7 Update m3u 2025-12-27 01:10:50 +08:00
GitHub Actions
412827f42c Update m3u 2025-12-27 00:44:31 +08:00
GitHub Actions
6845db2085 Update m3u 2025-12-27 00:13:42 +08:00
GitHub Actions
c21da91754 Update m3u 2025-12-26 23:40:29 +08:00
GitHub Actions
16f24d2748 Update m3u 2025-12-26 23:12:33 +08:00
GitHub Actions
4c21838421 Update m3u 2025-12-26 22:42:29 +08:00
GitHub Actions
44371b59af Update m3u 2025-12-26 22:12:35 +08:00
cluntop
ded3438fc8
Update urls.txt 2025-12-26 21:58:09 +08:00
cluntop
5ea1ed6050 Update Up 2025-12-26 21:55:35 +08:00
GitHub Actions
1601477a55 Update m3u 2025-12-26 21:48:11 +08:00
GitHub Actions
cb74b12fa6 Update m3u 2025-12-26 21:06:49 +08:00
7 changed files with 10227 additions and 9902 deletions

View File

@ -22,14 +22,12 @@ const aggConfig = {
软鸭: { host: 'https://api.xingzhige.com', url1: '/API/playlet', search: '/API/playlet' },
七猫: { host: 'https://api-store.qmplaylet.com', url1: '/api/v1/playlet/index', url2: 'https://api-read.qmplaylet.com/player/api/v1/playlet/info', search: '/api/v1/playlet/search' },
围观: { host: 'https://api.drama.9ddm.com', url1: '/drama/home/shortVideoTags', url2: '/drama/home/shortVideoDetail', search: '/drama/home/search' },
碎片: { host: 'https://free-api.bighotwind.cc', url1: '/papaya/papaya-api/theater/tags', url2: '/papaya/papaya-api/videos/info', search: '/papaya/papaya-api/videos/page' },
甜圈: { host: 'https://mov.cenguigui.cn', url1: '/duanju/api.php?classname', url2: '/duanju/api.php?book_id', search: '/duanju/api.php?name' }
},
platformList: [
{ name: '甜圈短剧', id: '甜圈' }, { name: '七猫短剧', id: '七猫' }, { name: '锦鲤短剧', id: '锦鲤' },
{ name: '番茄短剧', id: '番茄' }, { name: '星芽短剧', id: '星芽' }, { name: '西饭短剧', id: '西饭' },
{ name: '软鸭短剧', id: '软鸭' }, { name: '百度短剧', id: '百度' }, { name: '围观短剧', id: '围观' },
{ name: '碎片剧场', id: '碎片' }
{ name: '软鸭短剧', id: '软鸭' }, { name: '百度短剧', id: '百度' }, { name: '围观短剧', id: '围观' }
],
search: { limit: 30, timeout: 6000 }
};
@ -43,7 +41,6 @@ const ruleFilterDef = {
软鸭: { area: '战神' },
七猫: { area: '0' },
围观: { area: '' },
碎片: { area: '' },
甜圈: { area: '推荐榜' }
};
@ -238,25 +235,6 @@ async function category(tid, pg, filter, extend) {
if (res?.data) videos.push(...res.data.map(i => ({
vod_id: `围观@${i.oneId}`, vod_name: i.title, vod_pic: i.vertPoster, vod_remarks: `集数:${i.episodeCount} 播放:${i.viewCount}`
})));
} else if (tid === '碎片') {
let openId = (await md5(guid())).substring(0, 16);
let body = JSON.stringify({ openId });
let key = CryptoJS.enc.Utf8.parse("p0sfjw@k&qmewu#w");
const encrypted = CryptoJS.AES.encrypt(body, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }).ciphertext.toString(CryptoJS.enc.Hex);
const tokenRes = JSON.parse(await request("https://free-api.bighotwind.cc/papaya/papaya-api/oauth2/uuid", {
method: 'POST', headers: { 'Content-Type': 'application/json', 'key': encrypted }, body
}));
if (tokenRes?.data?.token) {
const headers = { ...aggConfig.headers.default, 'Authorization': tokenRes.data.token };
const url = `${plat.host}${plat.search}?type=5&tagId=&pageNum=${page}&pageSize=24`;
const res = JSON.parse(await request(url, { headers }));
if (res?.list) videos.push(...res.list.map(i => ({
vod_id: `碎片@${i.itemId}@${i.videoCode}`,
vod_name: i.title,
vod_pic: `https://speed.hiknz.com/papaya/papaya-file/files/download/${i.imageKey}/${i.imageName}`,
vod_remarks: `集数:${i.episodesMax} 播放:${i.hitShowNum}`
})));
}
} else if (tid === '甜圈') {
const url = `${plat.host}${plat.url1}=${encodeURIComponent(area)}&offset=${page}`;
const res = JSON.parse(await request(url));
@ -340,8 +318,8 @@ async function detail(id) {
} else if (platId === '软鸭') {
const didDecoded = decodeURIComponent(did);
const [title, img, author, type, desc, book_id] = didDecoded.split('@');
const detailUrl = `${plat.host}${plat.url1}/?book_id=${book_id}`;
const res = JSON.parse(await request(detailUrl));
const detailUrl = `${plat.host}${plat.url1}/?book_id=${book_id || did.split('@')[5]}`;
const res = JSON.parse(await request(detailUrl, { headers: aggConfig.headers.default }));
const u = (res.data?.video_list || []).map(e => `${e.title}$${e.video_id}`).join('#');
vod = { ...vod, vod_name: title, vod_pic: img, vod_remarks: type, vod_content: desc, vod_play_from: '软鸭短剧', vod_play_url: u };
} else if (platId === '围观') {
@ -350,29 +328,8 @@ async function detail(id) {
const d = res.data;
vod = { ...vod, vod_name: d[0].title, vod_pic: d[0].vertPoster, vod_remarks: `${d.length}`, vod_play_from: '围观短剧', vod_play_url: d.map(e => `${e.title}${e.playOrder}$${e.playSetting}`).join('#') };
}
} else if (platId === '碎片') {
const [itemId, videoCode] = did.split('@');
let openId = (await md5(guid())).substring(0, 16);
let body = JSON.stringify({ openId });
let key = CryptoJS.enc.Utf8.parse("p0sfjw@k&qmewu#w");
const encrypted = CryptoJS.AES.encrypt(body, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }).ciphertext.toString(CryptoJS.enc.Hex);
const tokenRes = JSON.parse(await request("https://free-api.bighotwind.cc/papaya/papaya-api/oauth2/uuid", {
method: 'POST', headers: { 'Content-Type': 'application/json', 'key': encrypted }, body
}));
if (tokenRes?.data?.token) {
const headers = { ...aggConfig.headers.default, 'Authorization': tokenRes.data.token };
const res = JSON.parse(await request(`${plat.host}${plat.url2}?videoCode=${videoCode}&itemId=${itemId}`, { headers }));
if (res) {
const d = res.data || res;
const pic = `https://speed.hiknz.com/papaya/papaya-file/files/download/${d.imageKey}/${d.imageName}`;
const u = (d.episodesList || []).map(e => {
const best = e.resolutionList?.sort((a, b) => b.resolution - a.resolution)[0];
return best ? `${e.episodes}$https://speed.hiknz.com/papaya/papaya-file/files/download/${best.fileKey}/${best.fileName}` : null;
}).filter(Boolean).join('#');
vod = { ...vod, vod_name: d.title, vod_pic: pic, vod_remarks: `${d.episodesMax || 0}`, vod_play_from: '碎片剧场', vod_play_url: u };
}
}
}
} catch (e) { vod.vod_name = '加载失败'; }
return JSON.stringify({ list: [vod] });
}
@ -416,6 +373,11 @@ async function play(flag, id) {
}
} catch {}
}
if (/软鸭/.test(flag)) {
const response = await request(`${aggConfig.platform.软鸭.host}/API/playlet/?video_id=${id}&quality=1080p`, { headers: aggConfig.headers.default });
const res = JSON.parse(response);
return JSON.stringify({ parse: 0, url: res.data?.video?.url || '' });
}
if (/围观/.test(flag)) {
try {
const ps = typeof id === 'string' ? JSON.parse(id) : id;
@ -449,7 +411,7 @@ async function search(wd, quick, pg) {
}
});
} catch {}
const platforms = ['百度', '锦鲤', '番茄', '星芽', '西饭', '软鸭', '围观', '碎片', '甜圈'];
const platforms = ['百度', '锦鲤', '番茄', '星芽', '西饭', '软鸭', '围观', '甜圈'];
for (const tid of platforms) {
const plat = aggConfig.platform[tid];
try {
@ -487,25 +449,6 @@ async function search(wd, quick, pg) {
body: JSON.stringify({ audience: "", page, pageSize: 30, searchWord: wd, subject: "" })
});
data = (JSON.parse(res)?.data || []).map(i => ({ vod_id: `围观@${i.oneId}`, vod_name: i.title, vod_pic: i.vertPoster, vod_remarks: `围观短剧|集数:${i.episodeCount} 播放:${i.viewCount}` }));
} else if (tid === '碎片') {
let openId = (await md5(guid())).substring(0, 16);
let body = JSON.stringify({ openId });
let key = CryptoJS.enc.Utf8.parse("p0sfjw@k&qmewu#w");
const encrypted = CryptoJS.AES.encrypt(body, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }).ciphertext.toString(CryptoJS.enc.Hex);
const tokenRes = JSON.parse(await request("https://free-api.bighotwind.cc/papaya/papaya-api/oauth2/uuid", {
method: 'POST', headers: { 'Content-Type': 'application/json', 'key': encrypted }, body, timeout: aggConfig.search.timeout
}));
if (tokenRes?.data?.token) {
const headers = { ...aggConfig.headers.default, 'Authorization': tokenRes.data.token };
const url = `${plat.host}${aggConfig.platform.碎片.search}?type=5&tagId=&pageNum=${page}&pageSize=30&title=${encodeURIComponent(wd)}`;
res = await request(url, { headers });
data = (JSON.parse(res)?.list || []).map(i => ({
vod_id: `碎片@${i.itemId}@${i.videoCode}`,
vod_name: i.title,
vod_pic: `https://speed.hiknz.com/papaya/papaya-file/files/download/${i.imageKey}/${i.imageName}`,
vod_remarks: `碎片剧场|集数:${i.episodesMax} 播放:${i.hitShowNum}`
}));
}
} else if (tid === '甜圈') {
const url = `${plat.host}${plat.search}=${encodeURIComponent(wd)}&offset=${page}`;
res = await request(url);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1275,14 +1275,109 @@ MovieSphere,
The Lego Channel,
NextUp Live Comedy,
半岛英语,
香港国际财经,
HOY 资讯台,
AnimalPlanet,
Awani,
BBC1,
BBC2,
Bloomberg,
CBS News,
CNBC,
ELEVEN 體育1台,
EYETV旅遊,
EYETV戲劇,
GOODTVCH02真理台,
M-BBCLifestyle,
M--SkyZ,
MusicTV,
RHK31,
RHK32,
SkySportsCricket,
TLC旅遊生活,
TV8,
ViuTV6,
愛爾達體育1台,
愛爾達體育2,
八大第一台,
八大戲劇,
八大綜合,
博斯高球1,
博斯高球2,
博斯魅力,
博斯網球,
博斯運動2,
大愛電視,
東森LIVE,
東森電影,
東森洋片,
東森綜合,
动物星球,
動物星球,
非凡新聞,
國家地理野生,
好萊塢電影,
靖天國際台,
美亞電影,
民視臺灣,
三立台灣,
時尚台FTV,
探索動力,
探索動力DMAX,
探索頻道,
探索亞洲,
緯來日本,
衛視中文,
中天娛樂,
中天綜合,
星空国际,
澳视澳门,
TVB J1,
千禧经典,
星光影视,
三立综合,
三立都会,
东森戏剧,
MOMO TV,
港台电视31,
港台电视32,
HOY78,
ASTRO AOD,
DAZN体育1,
DAZN体育2,
ELEVEN体育3,
韩国电影1,
韩国电影2,
RTHK31,
澳视卫星,
八度空间,
CH5,
CH8,
CHU,
天映频道,
Astro AEC,
爱奇艺,
Astro欢喜台,
亚洲武侠,
TVB生活台,
NOW NEWS,
澳门体育,
澳门综艺,
NU2,
华视HD,
TVBSNEWS,
八大第1台,
八大综合台,
Eleven体育,
星光综合台,
美国新闻,
韩国阿里郎,
YouTube,#genre#
三立INEWS,
运通财经,
ABC NEWS,
天才冲冲冲「综艺」,
ASTRO AWANI,
Tokyo Shibuya「东京涩谷」,
大爱,
三立NEWS+,

View File

@ -401,7 +401,6 @@ BRTV国际频道,
南京十八,
江苏体育,
泗洪新闻综合,
泗阳综合,
南京教科,
南京新闻综合,
南京信息,
@ -1276,7 +1275,111 @@ MovieSphere,
The Lego Channel,
NextUp Live Comedy,
半岛英语,
香港国际财经,
HOY 资讯台,
AnimalPlanet,
Awani,
BBC1,
BBC2,
Bloomberg,
CBS News,
CNBC,
ELEVEN 體育1台,
EYETV旅遊,
EYETV戲劇,
GOODTVCH02真理台,
M-BBCLifestyle,
M--SkyZ,
MusicTV,
RHK31,
RHK32,
RTHK32,
SkySportsCricket,
TLC旅遊生活,
TV8,
ViuTV6,
愛爾達體育1台,
愛爾達體育2,
愛爾達體育2台,
八大第一台,
八大戲劇,
八大綜合,
博斯高球1,
博斯高球2,
博斯魅力,
博斯網球,
博斯運動2,
大愛電視,
東森LIVE,
東森電影,
東森洋片,
東森綜合,
动物星球,
動物星球,
非凡新聞,
國家地理野生,
好萊塢電影,
靖天國際台,
美亞電影,
民視臺灣,
三立台灣,
時尚台FTV,
探索動力,
探索動力DMAX,
探索頻道,
探索亞洲,
緯來日本,
衛視中文,
衛視中文台,
中天娛樂,
中天綜合,
星空国际,
澳视澳门,
TVB J1,
千禧经典,
星光影视,
三立综合,
三立都会,
东森戏剧,
MOMO TV,
港台电视31,
港台电视32,
HOY78,
ASTRO AOD,
DAZN体育1,
DAZN体育2,
ELEVEN体育3,
韩国电影1,
韩国电影2,
RTHK31,
RTHK32,
澳视卫星,
八度空间,
CH5,
CH8,
CHU,
千禧经典台,
天映频道,
Astro AOD,
Astro AEC,
爱奇艺,
Astro欢喜台,
亚洲武侠,
TVB生活台,
NOW NEWS,
澳门体育,
澳门综艺,
NU2,
华视HD,
TVB亚洲武侠,
TVBSNEWS,
八大第1台,
八大综合台,
Eleven体育,
三立综合台,
星光综合台,
美国新闻,
韩国阿里郎,
YouTube,#genre#
三立INEWS,

File diff suppressed because it is too large Load Diff

View File

@ -22,4 +22,5 @@ https://iptv-org.github.io/iptv/countries/tw.m3u
https://live.freetv.top/huyayqk.m3u
https://live.freetv.top/douyuyqk.m3u
https://www.goodiptv.club/yylunbo.m3u?url=https://lunbo.freetv.top
https://www.goodiptv.club/bililive.m3u
https://www.goodiptv.club/bililive.m3u
https://php.946985.filegear-sg.me/jackTV.m3u