Update Up

This commit is contained in:
cluntop
2026-02-25 22:39:46 +08:00
parent 2b8e9acdc6
commit 8c28742ee1
170 changed files with 227 additions and 1498 deletions
View File
View File
View File
Regular → Executable
View File
View File
View File

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Before

Width:  |  Height:  |  Size: 267 KiB

After

Width:  |  Height:  |  Size: 267 KiB

Before

Width:  |  Height:  |  Size: 500 KiB

After

Width:  |  Height:  |  Size: 500 KiB

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
+3 -1
View File
@@ -3,4 +3,6 @@ Telethon==1.37.0
requests==2.32.4
typing_extensions==4.12.2
demoji==1.1.0
tqdm==4.66.5
tqdm==4.66.5
aiohttp>=3.9.0
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
+73
View File
@@ -0,0 +1,73 @@
name: Update Toos
permissions:
contents: write
actions: write
on:
schedule:
- cron: '30 2 * * *'
workflow_dispatch:
env:
TZ: Asia/Shanghai
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
Update:
runs-on: self-hosted
timeout-minutes: 15
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
repository: cluntop/tvbox
token: ${{ secrets.GIT_TOKEN }}
fetch-depth: 1
- name: Delete old workflow runs
uses: Mattraks/delete-workflow-runs@v2
with:
token: ${{ github.token }}
repository: ${{ github.repository }}
retain_days: 1
keep_minimum_runs: 3
#- name: Set up Python
# uses: actions/setup-python@v6
# with:
# python-version: '3.10'
# cache: 'pip'
- name: Install dependencies
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
if [ -f .github/requirements.txt ]; then pip install -r .github/requirements.txt; fi
# pip install pandas requests
- name: Run M3U script
run: |
source .venv/bin/activate
python py/ssjh.py
- name: Commit and Push changes
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
if [ -n "$(git status --porcelain)" ]; then
echo "Changes detected, committing..."
git add .
git commit -m "Update m3u"
git pull --rebase origin main
git push origin main
else
echo "No changes detected, skipping push."
fi
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
-1
View File
@@ -824,7 +824,6 @@
"url": "./lib/18/rwcr.m3u",
"ua": ""
},
{
"name": "LIVEfl",
"type": 0,
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
View File
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
-1495
View File
@@ -1,1495 +0,0 @@
{
"spider": "./pg.jar",
"sites": [
{
"key": "豆瓣",
"name": "豆瓣",
"type": 3,
"api": "csp_Douban",
"searchable": 0,
"changeable": 1,
"indexs": 1,
"ext": "./lib/tokenm.json$$$./lib/douban.json"
},
{
"key": "TGDouban",
"name": "TG豆瓣",
"type": 3,
"api": "csp_TGDouban",
"timeout": 120,
"ext": {
"token": "./lib/tokenm.json",
"json": "./lib/tgsearch.json",
"keywords": "名称,片名,推荐",
"tgsearch_url": "http://127.0.0.1:10199",
"tgsearch_media_url": "http://127.0.0.1:10199",
"channellist": "tgsearchers3,leoziyuan,peccxinpd,yydf_hzl,vip115hot,clouddriveresources,q66share,yggpan,xiangxiunbb,oscardianying,dianying4k,wfysfx02,quarkfree,ucwpzy,ucquark,mcph860,mcph608,xunleibl,taoxgzy,yunpanx,kkxlzy,mcph086,dianyingshare,quark_movies,zyfx2022,alyp_1,quanziyuanshe,hdhhd21,guoman4k,duan_ju,q_dianying,q_dianshiju,sharepanfilms,mcph01,jdjdn1111,panjclub,baicaozy,yunpan189,tianyirigeng,cloudtianyi,tyysypzypd,txtyzy,kuakeclound,tyypzhpd,zyfb123,xx123pan,zyzhpd123,yingshifenxiang123,yp123pan,wp123zy115:oneonefivewpfx,lsp115,qukanmovie,channel_shares_115,share4115,ysxb48,aliyun:zaihuayun,sharealiyun,aliyun_4k_movies,aliyunys,qixingzhenren,yunpanuc,ucshare,ucwangpan",
"proxy": "proxy",
"douban": "./lib/douban.json",
"danmu": true
},
"style": {
"type": "rect",
"ratio": 0.7
}
},
{
"key": "网盘配置",
"name": "网盘及彈幕配置",
"type": 3,
"api": "csp_Config",
"searchable": 0,
"changeable": 0,
"ext": "./lib/tokenm.json",
"style": {
"type": "rect",
"ratio": 1.5
}
},
{
"key": "Local",
"name": "本地",
"type": 3,
"api": "csp_Local"
},
{
"key": "FirstAid",
"name": "🚑 急救知识 ",
"type": 3,
"api": "csp_FirstAid",
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"style": {
"type": "rect",
"ratio": 3.8
}
},
{
"key": "bili",
"name": "B站 | Bili[jar]",
"type": 3,
"api": "csp_Bili",
"searchable": 1,
"quickSearch": 0,
"changeable": 0,
"timeout": 60,
"playerType": 2,
"ext": {
"type": "演唱会#电影#电视剧#帕梅拉#广场舞#纪录片#综艺#鬼畜#音乐#舞蹈#影视#知识#美食#风光#田园#户外#8K#徐云",
"cookie": ""
}
},
{
"key": "TGYunPanLocal",
"name": "TG频道搜索",
"type": 3,
"api": "csp_TGYunPanLocal",
"timeout": 120,
"ext": {
"token": "./lib/tokenm.json",
"json": "./lib/tgsearch.json",
"keywords": "名称,片名,推荐",
"tgsearch_url": "http://127.0.0.1:10199",
"tgsearch_media_url": "http://127.0.0.1:10199",
"channellist": "tgsearchers3,leoziyuan,peccxinpd,yydf_hzl,vip115hot,clouddriveresources,q66share,yggpan,xiangxiunbb,oscardianying,dianying4k,wfysfx02,quarkfree,ucwpzy,ucquark,mcph860,mcph608,xunleibl,taoxgzy,yunpanx,kkxlzy,mcph086,dianyingshare,quark_movies,zyfx2022,alyp_1,quanziyuanshe,hdhhd21,guoman4k,duan_ju,q_dianying,q_dianshiju,sharepanfilms,mcph01,jdjdn1111,panjclub,baicaozy,yunpan189,tianyirigeng,cloudtianyi,tyysypzypd,txtyzy,kuakeclound,tyypzhpd,zyfb123,xx123pan,zyzhpd123,yingshifenxiang123,yp123pan,wp123zy115:oneonefivewpfx,lsp115,qukanmovie,channel_shares_115,share4115,ysxb48,aliyun:zaihuayun,sharealiyun,aliyun_4k_movies,aliyunys,qixingzhenren,yunpanuc,ucshare,ucwangpan",
"proxy": "proxy",
"danmu": true
},
"style": {
"type": "rect",
"ratio": 1.77
}
},
{
"key": "TGYunPan",
"name": "TG群组搜索",
"type": 3,
"api": "csp_TGYunPan",
"timeout": 120,
"ext": {
"token": "./lib/tokenm.json",
"json": "./lib/tgsearch.json",
"keywords": "名称,片名,推荐",
"tgsearch_url": "http://127.0.0.1:10199",
"tgsearch_media_url": "http://127.0.0.1:10199",
"channellist": "tgsearchers3,KFCYeah,tianyifc,BaiduCloudDisk,txtyzy,peccxinpd,gotopan,PanjClub,kkxlzy,baicaoZY,yggpan,zaihuayun,Q66Share,Oscar_4Kmovies,shareAliyun,alyp_1,Quark_Movies,XiangxiuNBB,ydypzyfx,ucquark,xx123pan,zyfb123,tyypzhpd,tianyirigeng,cloudtianyi,hdhhd21,Lsp115,qixingzhenren,tyysypzypd,vip115hot,wp123zy,yunpan189,yydf_hzl,leoziyuan",
"proxy": "noproxy",
"danmu": true
},
"style": {
"type": "rect",
"ratio": 1.77
}
},
{
"key": "Guanying",
"name": "观影|网盘|磁力",
"type": 3,
"api": "csp_Guanying",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://www.gying.net$$$noproxy$$$1$$$./lib/guanying.txt$$$GUANYING"
},
{
"key": "FourKZN",
"name": "4K指南|网盘|磁力",
"type": 3,
"api": "csp_FourKZN",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$http://xuexizhinan.com/$$$noproxy$$$1$$$./lib/4kzn.txt$$$4KZN"
},
{
"key": "FourKFox",
"name": "4KFox|网盘|磁力",
"type": 3,
"api": "csp_FourKFox",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$http://4kfox.com/$$$noproxy$$$1$$$./lib/4kfox.txt$$$4KFOX"
},
{
"key": "FourKFM",
"name": "4K影库|网盘|磁力",
"type": 3,
"api": "csp_FourKFM",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$http://4kfm.com/$$$noproxy$$$1$$$./lib/4kfm.txt$$$4KFM"
},
{
"key": "校长影视",
"name": "校长影视|网盘",
"type": 3,
"api": "csp_XiaoZhang",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://xzyshd.com$$$proxy$$$1"
},
{
"key": "Wogg",
"name": "玩偶哥哥|网盘",
"type": 3,
"api": "csp_Wogg",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$http://wogg.888484.xyz/$$$noproxy$$$1$$$./lib/wogg.json$$$WOGG"
},
{
"key": "yydsys",
"name": "玩你老哥|网盘",
"type": 3,
"api": "csp_Wobg",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://tv.yydsys.top/$$$proxy$$$1$$$./lib/wogg.json$$$WNLG"
},
{
"key": "Mogg",
"name": "木偶哥哥|网盘",
"type": 3,
"api": "csp_Wobg",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$http://123.666291.xyz/$$$noproxy$$$1$$$./lib/wogg.json$$$MOGG"
},
{
"key": "至臻|网盘",
"name": "至臻|网盘",
"type": 3,
"api": "csp_Wobg",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://mihdr.top/$$$noproxy$$$1$$$./lib/wogg.json$$$ZHIZHEN"
},
{
"key": "Hmxz",
"name": "海绵|网盘",
"type": 3,
"api": "csp_Hmxz",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://haimian.eu.org/$$$noproxy$$$1$$$./lib/hmxz.txt$$$HMXZ",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "Leijing",
"name": "雷鲸|网盘",
"type": 3,
"api": "csp_Panta",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://leijing.xyz/$$$noproxy$$$1$$$./lib/leijing.txt$$$LEIJING",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "LIBVIO",
"name": "LIBVIO|网盘",
"type": 3,
"api": "csp_Libvio",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$http://www.libvio.mov/$$$noproxy$$$1"
},
{
"key": "Youtube",
"name": "Youtube",
"type": 3,
"api": "csp_Youtube",
"searchable": 1,
"quickSearch": 0,
"changeable": 0,
"timeout": 120,
"ext": {
"token": "./lib/tokenm.json",
"json": "./lib/youtube.json",
"type": "直播#新闻#剧集#电影#综艺#纪录片#音乐#体育#动物#风光#放松#4K#HDR#movie#music#documentary#bbc documentary#national geographic documentary",
"keywords": "排行榜,HOT,TRENDS,热门话题,热门趋势,热门综艺,热门电影,热门电视剧,小姐姐",
"codecs": "",
"proxy": "proxy",
"danmu": true
},
"style": {
"type": "rect",
"ratio": 1.77
}
},
{
"key": "Guazi",
"name": "瓜子|App",
"type": 3,
"api": "csp_Guazi",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": ""
},
{
"key": "Moli",
"name": "HDmoli|网盘",
"type": 3,
"api": "csp_Moli",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://www.hdmoli.pro/$$$proxy$$$1$$$./lib/moli.json"
},
{
"key": "ddys",
"name": "低端影视|网盘",
"type": 3,
"api": "csp_Ddys",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://ddys.pro/$$$proxy$$$1$$$"
},
{
"key": "美剧迷",
"name": "美剧迷|网盘",
"type": 3,
"api": "csp_Meijumi",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 120,
"ext": "./lib/tokenm.json$$$https://www.meijumi.net/$$$proxy$$$1"
},
{
"key": "WebDAV",
"name": "WebDAV[jar]",
"type": 3,
"api": "csp_WebDAV",
"searchable": 1,
"filterable": 1,
"changeable": 1,
"timeout": 60,
"playerType": 2,
"ext": "./lib/webdav.json"
},
{
"key": "AList",
"name": "网盘|Alist[jar]",
"type": 3,
"api": "csp_AList",
"searchable": 1,
"filterable": 1,
"changeable": 1,
"timeout": 60,
"playerType": 2,
"ext": "./lib/alistjar.json"
},
{
"key": "PushShare",
"name": "我的资源分享",
"type": 3,
"api": "csp_PushShare",
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"filterable": 0,
"timeout": 60,
"ext": "./lib/tokenm.json$$$./lib/pushshare.txt$$$db$$$1",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "AlistShare",
"name": "网盘分享合集",
"type": 3,
"api": "csp_AlistShare",
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"filterable": 0,
"timeout": 120,
"ext": "./lib/tokenm.json$$$null$$$proxy$$$1",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "AliShare",
"name": "阿里云盘影视分享",
"type": 3,
"api": "csp_AliShare",
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"filterable": 0,
"timeout": 60,
"ext": "./lib/tokenm.json$$$./lib/alishare.txt$$$db$$$1",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "AliShareEBook",
"name": "阿里云盘书籍分享",
"type": 3,
"api": "csp_AliShare",
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"filterable": 0,
"timeout": 60,
"ext": "./lib/tokenm.json$$$./lib/alishare.ebook.txt$$$db$$$1",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "QuarkShare",
"name": "夸克云盘分享",
"type": 3,
"api": "csp_QuarkShare",
"searchable": 1,
"quickSearch": 0,
"changeable": 0,
"filterable": 0,
"timeout": 60,
"ext": "./lib/tokenm.json$$$./lib/quarkshare.txt",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "123Share",
"name": "123云盘分享",
"type": 3,
"api": "csp_P123Share",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"filterable": 0,
"timeout": 120,
"ext": "./lib/tokenm.json$$$./lib/123share.txt$$$db$$$1",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "189Share",
"name": "189云盘分享",
"type": 3,
"api": "csp_P189Share",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"filterable": 0,
"timeout": 120,
"ext": "./lib/tokenm.json$$$./lib/189share.txt$$$db$$$1",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "ThunderShare",
"name": "迅雷云盘分享",
"type": 3,
"api": "csp_ThunderShare",
"searchable": 1,
"quickSearch": 0,
"changeable": 0,
"filterable": 0,
"timeout": 60,
"ext": "./lib/tokenm.json$$$./lib/thundershare.txt",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "UCShare",
"name": "UC云盘分享",
"type": 3,
"api": "csp_UCShare",
"searchable": 1,
"quickSearch": 0,
"changeable": 0,
"filterable": 0,
"timeout": 60,
"ext": "./lib/tokenm.json$$$./lib/ucshare.txt$$$db$$$1",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "115Share",
"name": "115云盘分享",
"type": 3,
"api": "csp_P115Share",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"filterable": 0,
"timeout": 120,
"ext": "./lib/tokenm.json$$$./lib/115share.txt$$$db$$$1",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "PikPakShare",
"name": "PikPak分享",
"type": 3,
"api": "csp_PikPakShare",
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"filterable": 0,
"timeout": 60,
"ext": "./lib/tokenm.json$$$./lib/pikpakclass.json$$$./lib/pikpakclass.json.txt.gz",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "SambaShare",
"name": "Samba分享",
"type": 3,
"api": "csp_SambaShare",
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"filterable": 0,
"timeout": 60,
"ext": "./lib/tokenm.json$$$./lib/sambashare.txt"
},
{
"key": "Hdhive",
"name": "鸟窝|网盘",
"type": 3,
"api": "csp_Hdh",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 120,
"ext": "./lib/tokenm.json$$$https://hdhive.com$$$noproxy$$$1$$$./lib/hdhive.txt"
},
{
"key": "TianYiSou",
"name": "天逸搜|网盘搜索",
"type": 3,
"api": "csp_TianYiSou",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$null$$$proxy"
},
{
"key": "YunPan",
"name": "云盘资源|网盘",
"type": 3,
"api": "csp_YunPan",
"timeout": 60,
"ext": "./lib/tokenm.json$$$null$$$proxy$$$1"
},
{
"key": "YingSo",
"name": "影搜|网盘搜索",
"type": 3,
"api": "csp_YingSo",
"timeout": 60,
"ext": "./lib/tokenm.json"
},
{
"key": "混合盘",
"name": "混合盘|网盘搜索",
"type": 3,
"api": "csp_HunHePan",
"timeout": 60,
"ext": "./lib/tokenm.json",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "88Pan",
"name": "88网盘|网盘搜索",
"type": 3,
"api": "csp_EightEight",
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://662688.xyz$$$",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "PanSearch",
"name": "PanSearch|网盘搜索",
"type": 3,
"api": "csp_PanSearch",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$null$$$proxy"
},
{
"key": "盘友圈",
"name": "盘友圈|网盘搜索",
"type": 3,
"api": "csp_Panyq",
"timeout": 60,
"ext": "./lib/tokenm.json$$$site$$$proxy"
},
{
"key": "易搜",
"name": "易搜|网盘搜索",
"type": 3,
"api": "csp_YiSo",
"timeout": 60,
"ext": "./lib/tokenm.json$$$./lib/yiso.txt",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "秒搜",
"name": "秒搜|网盘搜索",
"type": 3,
"api": "csp_MiaoSou",
"timeout": 60,
"ext": "./lib/tokenm.json",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "Funletu",
"name": "趣盘搜|夸克搜索",
"type": 3,
"api": "csp_Funletu",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "QuarkPanso",
"name": "夸克盘搜|夸克搜索",
"type": 3,
"api": "csp_QuarkPanso",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "Panta",
"name": "盘Ta|网盘",
"type": 3,
"api": "csp_Panta",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://www.91panta.cn/$$$null$$$1$$$./lib/panta.txt$$$PANTA",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "DaPanSo",
"name": "大盘搜|网盘搜索",
"type": 3,
"api": "csp_DaPanSo",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://dapanso.com$$$proxy$$$1"
},
{
"key": "PikaSo",
"name": "皮卡搜|网盘搜索",
"type": 3,
"api": "csp_PikaSo",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://www.pikaso.top/$$$null",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "Qianfan",
"name": "千帆|网盘搜索",
"type": 3,
"api": "csp_Qianfan",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://pan.qianfan.app$$$null$$$./lib/qianfan.txt$$$1"
},
{
"key": "YunSo",
"name": "小云搜索|网盘搜索",
"type": 3,
"api": "csp_YunSo",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://www.yunso.net$$$null$$$1",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "YunPanOne",
"name": "云盘One|网盘搜索",
"type": 3,
"api": "csp_YunPanOne",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$null$$$proxy$$$1"
},
{
"key": "新6V",
"name": "新6V|网盘",
"type": 3,
"api": "csp_Xb6v",
"searchable": 1,
"changeable": 1,
"timeout": 60,
"ext": "./lib/tokenm.json$$$https://www.66ss.org$$$null$$$1"
},
{
"key": "索尼资源",
"name": "索尼┃资源",
"type": 1,
"api": "https://suoniapi.com/api.php/provide/vod/from/snm3u8/",
"categories": [
"动作片",
"喜剧片",
"爱情片",
"科幻片",
"恐怖片",
"剧情片",
"战争片",
"国产剧",
"欧美剧",
"韩剧",
"日剧",
"港剧",
"台剧",
"泰剧",
"海外剧",
"纪录片",
"大陆综艺",
"日韩综艺",
"港台综艺",
"欧美综艺",
"国产动漫",
"日韩动漫",
"欧美动漫",
"动画片",
"港台动漫",
"海外动漫",
"演唱会",
"体育赛事",
"篮球",
"足球",
"预告片",
"斯诺克",
"影视解说"
],
"searchable": 1,
"quickSearch": 1
},
{
"key": "UP云搜",
"name": "阿里|UP云搜",
"type": 3,
"api": "csp_UpYun",
"timeout": 30,
"ext": "./lib/tokenm.json",
"style": {
"type": "list",
"ratio": 1.1
}
},
{
"key": "BLSGod",
"name": "BLSGod|磁",
"type": 3,
"api": "csp_BLSGod",
"changeable": 1,
"timeout": 60
},
{
"key": "SeedHub",
"name": "SeedHub|磁",
"type": 3,
"api": "csp_SeedHub",
"changeable": 1,
"timeout": 60
},
{
"key": "ikun",
"name": "ikun",
"type": 1,
"api": "http://127.0.0.1:10079/p/0/proxy/https://ikunzyapi.com/api.php/provide/vod/?",
"playUrl": "json:http://127.0.0.1:10079/parse/?thread=0&proxy=proxy&url=",
"playerType": 1,
"searchable": 1,
"changeable": 1
},
{
"key": "暴風",
"name": "暴風",
"type": 1,
"api": "http://127.0.0.1:10079/p/0/proxy/https://bfzyapi.com/api.php/provide/vod?",
"playUrl": "json:http://127.0.0.1:10079/parse/?thread=0&proxy=proxy&url=",
"searchable": 1,
"changeable": 1
},
{
"key": "索尼",
"name": "索尼 ",
"type": 1,
"api": "http://127.0.0.1:10079/p/0/proxy/https://suoniapi.com/api.php/provide/vod?",
"playUrl": "json:http://127.0.0.1:10079/parse/?thread=0&proxy=proxy&url=",
"searchable": 1,
"changeable": 1
},
{
"key": "量子",
"name": "量子",
"type": 1,
"api": "http://127.0.0.1:10079/p/0/proxy/http://cj.lziapi.com/api.php/provide/vod/?",
"playUrl": "json:http://127.0.0.1:10079/parse/?thread=0&proxy=proxy&url=",
"playerType": 1,
"searchable": 1,
"changeable": 1
},
{
"key": "非凡",
"name": "非凡",
"type": 1,
"api": "http://127.0.0.1:10079/p/0/proxy/http://cj.ffzyapi.com/api.php/provide/vod/?",
"playUrl": "json:http://127.0.0.1:10079/parse/?thread=0&proxy=proxy&url=",
"playerType": 1,
"searchable": 1,
"changeable": 1,
"categories": [
"国产动漫",
"日韩动漫",
"国产剧",
"韩国剧",
"日本剧",
"电影片",
"连续剧",
"综艺片",
"动漫片",
"动作片",
"喜剧片",
"爱情片",
"科幻片",
"恐怖片",
"剧情片",
"战争片",
"香港剧",
"欧美剧",
"记录片",
"台湾剧",
"海外剧",
"泰国剧",
"大陆综艺",
"港台综艺",
"日韩综艺",
"欧美综艺",
"欧美动漫",
"港台动漫",
"海外动漫"
]
},
{
"key": "異界",
"name": "異界",
"type": 3,
"api": "csp_Ysj",
"searchable": 1,
"changeable": 0
},
{
"key": "drpy_js_Alist",
"name": "网盘 | Alist[js]",
"type": 3,
"api": "./lib/alist.min.js",
"searchable": 1,
"filterable": 1,
"changeable": 1,
"ext": "./js/alist.json"
},
{
"key": "酷狗",
"name": "酷狗",
"type": 3,
"api": "csp_Kugou",
"searchable": 1,
"changeable": 0
},
{
"key": "Yinyuetai",
"name": "音悦台",
"type": 3,
"api": "csp_Yinyuetai",
"searchable": 1,
"changeable": 0
},
{
"key": "push_agent",
"name": "推送",
"type": 3,
"api": "csp_Push",
"changeable": 0,
"timeout": 30,
"ext": "./lib/tokenm.json"
},
{
"key": "應用商店",
"name": "應用商店",
"type": 3,
"api": "csp_Market",
"searchable": 0,
"changeable": 0,
"ext": "https://fm.t4tv.hz.cz/json/market.json"
},
{
"key": "直播转点播",
"name": "🐼️┃电视┃直播",
"type": 3,
"searchable": 0,
"api": "./lib/live2vod.js",
"ext": "./lib/feimaolive.json"
}
],
"lives": [
{
"name": "最强国内直播(合并版)",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/all.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png",
"catchup": {
"type": "append",
"source": "?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"
}
},
{
"name": "最强国内直播",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/tv.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png",
"catchup": {
"type": "append",
"source": "?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"
}
},
{
"name": "最强国内直播(EPG-1天回看)",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/tv.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date=DATE1SUB",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png",
"catchup": {
"type": "append",
"source": "?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"
}
},
{
"name": "FeiYang牧场",
"type": 0,
"url": "http://sub.ottiptv.cc/iptv.m3u",
"ua": "okHttp/Mod-1.3.0.0",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date=DATE1SUB",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png",
"catchup": {
"type": "append",
"source": "?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"
}
},
{
"name": "BJYD",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/bjyd.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png",
"catchup": {
"type": "append",
"source": "?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"
}
},
{
"name": "BJYD(EPG-1天回看)",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/bjyd.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date=DATE1SUB",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png",
"catchup": {
"type": "append",
"source": "?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"
}
},
{
"name": "BJYD(EPG-2天回看)",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/bjyd.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date=DATE2SUB",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png",
"catchup": {
"type": "append",
"source": "?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"
}
},
{
"name": "BJYD(EPG-3天回看)",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/bjyd.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date=DATE3SUB",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png",
"catchup": {
"type": "append",
"source": "?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"
}
},
{
"name": "BIPTV(IPV6,可回看)",
"type": 0,
"url": "./lib/biptv.txt",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "PandaGo投屏直播接收记录",
"type": 0,
"url": "http://127.0.0.1:10079/dlnam3u/tv.m3u",
"ua": "okhttp/3.15.",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "FMM.m3u",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/proxy/https://raw.githubusercontent.com/fanmingming/live/refs/heads/main/tv/m3u/ipv6.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "FMM.m3u.音质增强",
"type": 0,
"url": "http://127.0.0.1:10079/mp4/3600/proxy/https://raw.githubusercontent.com/fanmingming/live/refs/heads/main/tv/m3u/ipv6.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "肥羊TX赛事直播",
"type": 0,
"url": "http://127.0.0.1:10079/c/60/null/http://127.0.0.1:35456/txevent.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "肥羊QY赛事直播",
"type": 0,
"url": "http://127.0.0.1:10079/c/60/null/http://127.0.0.1:35456/iqyevent.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "肥羊B站直播",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/bililive.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "肥羊B站直播.音质增强",
"type": 0,
"url": "http://127.0.0.1:10079/mp4/3600/null/http://127.0.0.1:35456/bililive.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "肥羊虎牙一起看",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/huyayqk.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "肥羊虎牙一起看.音质增强",
"type": 0,
"url": "http://127.0.0.1:10079/mp4/3600/null/http://127.0.0.1:35456/huyayqk.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "肥羊斗鱼一起看",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/douyuyqk.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "肥羊斗鱼一起看.音质增强",
"type": 0,
"url": "http://127.0.0.1:10079/mp4/3600/null/http://127.0.0.1:35456/douyuyqk.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "肥羊YY轮播",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/yylunbo.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "YTB直播",
"type": 0,
"url": "./lib/ytblive.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "AKTV.电视直播",
"type": 0,
"url": "http://aktv.top/live.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "Gather.电视直播",
"type": 0,
"url": "https://tv.iill.top/m3u/Gather",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "Gather.网络直播",
"type": 0,
"url": "https://tv.iill.top/m3u/Live",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "FMM.txt",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/proxy/https://fanmingming.com/txt?url=https://live.fanmingming.cn/tv/m3u/ipv6.m3u",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "zouming.ipv6",
"type": 0,
"url": "http://127.0.0.1:10079/c/3600/proxy/http://ww.zouming.com/ipv6.txt",
"ua": "okhttp/3.15",
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
},
{
"name": "YTLive",
"type": 0,
"url": "./lib/yo21.txt"
},
{
"group": "redirect",
"channels": [
{
"name": "redirect",
"urls": [
"proxy://do=live&type=live&proxy=&url="
]
}
]
}
],
"doh": [
{
"name": "Google",
"url": "https://dns.google/dns-query",
"ips": [
"8.8.4.4",
"8.8.8.8"
]
},
{
"name": "Cloudflare",
"url": "https://cloudflare-dns.com/dns-query",
"ips": [
"1.1.1.1",
"1.0.0.1",
"2606:4700:4700::1111",
"2606:4700:4700::1001"
]
},
{
"name": "AdGuard",
"url": "https://dns.adguard.com/dns-query",
"ips": [
"94.140.14.140",
"94.140.14.141"
]
},
{
"name": "DNSWatch",
"url": "https://resolver2.dns.watch/dns-query",
"ips": [
"84.200.69.80",
"84.200.70.40"
]
},
{
"name": "Quad9",
"url": "https://dns.quad9.net/dns-quer",
"ips": [
"9.9.9.9",
"149.112.112.112"
]
}
],
"proxy": [
"raw.githubusercontent.com",
"googlevideo.com",
"cdn.v82u1l.com",
"cdn.iz8qkg.com",
"cdn.kin6c1.com",
"c.biggggg.com",
"c.olddddd.com",
"haiwaikan.com",
"www.histar.tv",
"youtube.com",
"uhibo.com",
".*boku.*",
".*nivod.*",
".*ulivetv.*"
],
"hosts": [
"cache.ott.ystenlive.itv.cmvideo.cn=base-v4-free-mghy.e.cdn.chinamobile.com",
"cache.ott.bestlive.itv.cmvideo.cn=base-v4-free-mghy.e.cdn.chinamobile.com",
"cache.ott.wasulive.itv.cmvideo.cn=base-v4-free-mghy.e.cdn.chinamobile.com",
"cache.ott.fifalive.itv.cmvideo.cn=base-v4-free-mghy.e.cdn.chinamobile.com",
"cache.ott.hnbblive.itv.cmvideo.cn=base-v4-free-mghy.e.cdn.chinamobile.com"
],
"rules": [
{
"name": "proxy",
"hosts": [
"raw.githubusercontent.com",
"googlevideo.com",
"cdn.v82u1l.com",
"cdn.iz8qkg.com",
"cdn.kin6c1.com",
"c.biggggg.com",
"c.olddddd.com",
"haiwaikan.com",
"www.histar.tv",
"youtube.com",
"uhibo.com",
".*boku.*",
".*nivod.*",
"*.t4tv.hz.cz",
".*ulivetv.*"
]
},
{
"host": "www.djuu.com",
"rule": [
"mp4.djuu.com",
"m4a"
]
},
{
"host": "www.sharenice.net",
"rule": [
"huoshan.com",
"/item/video/"
],
"filter": []
},
{
"host": "www.sharenice.net",
"rule": [
"sovv.qianpailive.com",
"vid="
],
"filter": []
},
{
"host": "www.sharenice.net",
"rule": [
"douyin.com",
"/play/"
]
},
{
"host": "m.ysxs8.vip",
"rule": [
"ysting.ysxs8.vip:81",
"xmcdn.com"
],
"filter": []
},
{
"host": "hdmoli.com",
"rule": [
".m3u8"
]
},
{
"host": "https://api.live.bilibili.com",
"rule": [
"bilivideo.com",
"/index.m3u8"
],
"filter": [
"data.bilibili.com/log/web",
"i0.hdslb.com/bfs/live/"
]
},
{
"host": "www.agemys.cc",
"rule": [
"cdn-tos",
"obj/tos-cn"
]
},
{
"host": "www.fun4k.com",
"rule": [
"https://hd.ijycnd.com/play",
"index.m3u8"
]
},
{
"host": "zjmiao.com",
"rule": [
"play.videomiao.vip/API.php",
"time=",
"key=",
"path="
]
},
{
"name": "火山嗅探",
"hosts": [
"huoshan.com"
],
"regex": [
"item_id="
]
},
{
"name": "抖音嗅探",
"hosts": [
"douyin.com"
],
"regex": [
"is_play_url="
]
},
{
"name": "農民嗅探",
"hosts": [
"toutiaovod.com"
],
"regex": [
"video/tos/cn"
]
},
{
"name": "夜市",
"hosts": [
"yeslivetv.com"
],
"script": [
"document.getElementsByClassName('vjs-big-play-button')[0].click()"
]
},
{
"name": "毛驢",
"hosts": [
"www.maolvys.com"
],
"script": [
"document.getElementsByClassName('swal-button swal-button--confirm')[0].click()"
]
},
{
"name": "磁力广告",
"hosts": [
"magnet"
],
"regex": [
"更多",
"社 區",
"x u u",
"最 新",
"直 播",
"更 新",
"社 区",
"有 趣",
"英皇体育",
"全中文AV在线",
"澳门皇冠赌场",
"哥哥快来",
"美女荷官",
"裸聊",
"新片首发",
"UUE29"
]
}
],
"parses": [],
"flags": [
"youku",
"qq",
"iqiyi",
"qiyi",
"letv",
"sohu",
"tudou",
"pptv",
"mgtv",
"wasu"
],
"wallpaper": "http://饭太硬.top/深色壁纸/api.php",
"disabled_wallpaper": "http://www.kf666888.cn/api/tvbox/img"
}
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Vendored Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Vendored Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
-1
View File
@@ -1 +0,0 @@
c10464a367e55bef8b5c1ab58995144a
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
+151
View File
@@ -0,0 +1,151 @@
# coding=utf-8
import os
import logging
import sys
import asyncio
import aiohttp
BASE_URL = "http://api.hclyz.com:81/mf"
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
TARGET_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "..", "lib"))
M3U_FILE = os.path.join(TARGET_DIR, "18/sbjh.m3u")
BLACK_LIST = ["支付宝风控解除", "依依实力带飞"]
HEADERS = {"User-Agent": "Mozilla/5.0"}
VALID_PREFIX = ("http://", "https://", "rtmp://")
MAX_WORKERS = 15
def setup_logging():
logger = logging.getLogger("ScraperLogger")
logger.setLevel(logging.INFO)
formatter = logging.Formatter('[%(asctime)s] %(levelname)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
return logger
log = setup_logging()
async def safe_get_json(url, session):
try:
async with session.get(url, headers=HEADERS, timeout=10) as r:
if r.status != 200:
return None
return await r.json(content_type=None)
except Exception as e:
log.error(f"Request Exception: {url} -> {e}")
return None
def is_valid_stream(url):
url = url.lower()
return url.startswith(VALID_PREFIX) and (".m3u8" in url or ".flv" in url or ".mp4" in url or url.startswith("rtmp://"))
async def process_platform(item, session, sem):
async with sem:
room_title = item.get("title", "").strip()
number = item.get("Number", "")
address = item.get("address", "")
log.info(f"📺 Concurrent requests{room_title}{number}")
detail = await safe_get_json(f"{BASE_URL}/{address}", session)
if not detail:
return room_title, [], 1, 0
zhubo = detail.get("zhubo", [])
if not zhubo:
return room_title, [], 1, 0
group_name = f"{room_title}"
results = []
errors = 0
filtered = 0
for vod in zhubo:
name = vod.get("title", "").strip()
url = vod.get("address", "").strip()
if any(keyword in name for keyword in BLACK_LIST):
log.info(f"🚫 Blocked words: {name}")
filtered += 1
continue
if not url or not is_valid_stream(url):
errors += 1
continue
results.append((group_name, name, url))
return room_title, results, errors, filtered
async def main_async():
total_error = 0
total_success = 0
total_filtered = 0
log.info("🚀 Task initiated.")
log.info(f"📂 Output the absolute path{M3U_FILE}")
# aiohttp 连接池配置
connector = aiohttp.TCPConnector(limit=MAX_WORKERS)
async with aiohttp.ClientSession(connector=connector) as session:
home = await safe_get_json(f"{BASE_URL}/json.txt", session)
if not home:
log.error("❌ Retrieval failed, collection terminated.")
sys.exit(1)
data = home.get("pingtai", [])[1:]
data = sorted(data, key=lambda x: int(x.get("Number", 0) or 0), reverse=True)
m3u_lines = ["#EXTM3U"]
seen_urls = set()
log.info(f"⚡ Multi-threading (Async): {MAX_WORKERS}")
sem = asyncio.Semaphore(MAX_WORKERS)
tasks = [process_platform(item, session, sem) for item in data]
results = await asyncio.gather(*tasks)
for room_title, res, errors, filtered in results:
total_error += errors
total_filtered += filtered
for group_name, name, url in res:
if url in seen_urls:
continue
seen_urls.add(url)
m3u_lines.append(f'#EXTINF:-1 group-title="{group_name}",{name}')
m3u_lines.append(url)
total_success += 1
try:
os.makedirs(os.path.dirname(M3U_FILE), exist_ok=True)
with open(M3U_FILE, "w", encoding="utf-8") as f:
f.write("\n".join(m3u_lines))
log.info(f"📄 It has been generated and saved.")
log.info(f"✅ Absolute path: {M3U_FILE}")
except Exception as e:
log.error(f"❌ Failed to write to file: {e}")
sys.exit(1)
summary_msg = f"Collection completed, valid{total_success}Shield{total_filtered}abnormal{total_error}"
log.info(summary_msg)
print(f"::notice title=📁 Save path: {M3U_FILE}::{summary_msg}")
def main():
asyncio.run(main_async())
if __name__ == "__main__":
main()
Regular → Executable
View File