听友FM
https://tingyou.fm
the-beauty-of-a-human-face (14579)2天前
听友FM在线听书,通过阅读Sigma版调试制作。如果不能播放完整音频可能是不兼容你的版本。音源地址需 webView 渲染获得。
{
"bookSourceComment": "听友FM 在线听书。音源地址需 webView 渲染获得。",
"bookSourceGroup": "听书",
"bookSourceName": "听友FM",
"bookSourceType": 1,
"bookSourceUrl": "https:\/\/tingyou.fm",
"bookUrlPattern": "https:\/\/tingyou\\.fm\/albums\/\\d+",
"concurrentRate": "1500",
"customButton": false,
"customOrder": 0,
"enabled": true,
"enabledCookieJar": false,
"enabledExplore": true,
"eventListener": false,
"exploreScreen": "",
"exploreUrl": "[{\"title\": \"有声小说\", \"url\": \"\", \"style\": {\"layout_flexBasisPercent\": 1, \"layout_flexGrow\": 1}}, {\"title\": \"玄幻奇幻\", \"url\": \"https:\/\/tingyou.fm\/?type=46&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"武侠小说\", \"url\": \"https:\/\/tingyou.fm\/?type=11&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"言情通俗\", \"url\": \"https:\/\/tingyou.fm\/?type=19&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"恐怖惊悚\", \"url\": \"https:\/\/tingyou.fm\/?type=14&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"官场商战\", \"url\": \"https:\/\/tingyou.fm\/?type=17&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"历史军事\", \"url\": \"https:\/\/tingyou.fm\/?type=15&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"百家讲坛\", \"url\": \"https:\/\/tingyou.fm\/?type=9&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"刑侦反腐\", \"url\": \"https:\/\/tingyou.fm\/?type=16&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"有声文学\", \"url\": \"https:\/\/tingyou.fm\/?type=10&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"人物纪实\", \"url\": \"https:\/\/tingyou.fm\/?type=18&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"广播剧\", \"url\": \"https:\/\/tingyou.fm\/?type=36&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"英文读物\", \"url\": \"https:\/\/tingyou.fm\/?type=22&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"轻音清心\", \"url\": \"https:\/\/tingyou.fm\/?type=23&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"二人转\", \"url\": \"https:\/\/tingyou.fm\/?type=31&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"健康养生\", \"url\": \"https:\/\/tingyou.fm\/?type=33&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"综艺娱乐\", \"url\": \"https:\/\/tingyou.fm\/?type=34&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"头条\", \"url\": \"https:\/\/tingyou.fm\/?type=40&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"戏曲\", \"url\": \"https:\/\/tingyou.fm\/?type=38&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"脱口秀\", \"url\": \"https:\/\/tingyou.fm\/?type=41&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"商业财经\", \"url\": \"https:\/\/tingyou.fm\/?type=42&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"亲子教育\", \"url\": \"https:\/\/tingyou.fm\/?type=43&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"教育培训\", \"url\": \"https:\/\/tingyou.fm\/?type=44&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"时尚生活\", \"url\": \"https:\/\/tingyou.fm\/?type=45&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"童话寓言\", \"url\": \"https:\/\/tingyou.fm\/?type=20&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"相声小品\", \"url\": \"https:\/\/tingyou.fm\/?type=21&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"未分类\", \"url\": \"https:\/\/tingyou.fm\/?type=47&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"评书\", \"url\": \"\", \"style\": {\"layout_flexBasisPercent\": 1, \"layout_flexGrow\": 1}}, {\"title\": \"单田芳\", \"url\": \"https:\/\/tingyou.fm\/?type=1&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"刘兰芳\", \"url\": \"https:\/\/tingyou.fm\/?type=2&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"田连元\", \"url\": \"https:\/\/tingyou.fm\/?type=3&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"袁阔成\", \"url\": \"https:\/\/tingyou.fm\/?type=4&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"连丽如\", \"url\": \"https:\/\/tingyou.fm\/?type=5&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"孙一\", \"url\": \"https:\/\/tingyou.fm\/?type=8&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"王子封臣\", \"url\": \"https:\/\/tingyou.fm\/?type=30&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"马长辉\", \"url\": \"https:\/\/tingyou.fm\/?type=25&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"昊儒书场\", \"url\": \"https:\/\/tingyou.fm\/?type=26&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"王军\", \"url\": \"https:\/\/tingyou.fm\/?type=27&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"王玥波\", \"url\": \"https:\/\/tingyou.fm\/?type=28&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"石连君\", \"url\": \"https:\/\/tingyou.fm\/?type=29&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"粤语评书\", \"url\": \"https:\/\/tingyou.fm\/?type=12&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"关永超\", \"url\": \"https:\/\/tingyou.fm\/?type=35&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"张少佐\", \"url\": \"https:\/\/tingyou.fm\/?type=6&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"田战义\", \"url\": \"https:\/\/tingyou.fm\/?type=7&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}, {\"title\": \"其他评书\", \"url\": \"https:\/\/tingyou.fm\/?type=13&sort=popular&page={{page}}\", \"style\": {\"layout_flexGrow\": 1, \"layout_flexBasisPercent\": 0.25}}]",
"header": "{\n \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 10; K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/120.0 Mobile Safari\/537.36\",\n \"Accept-Language\": \"zh-CN,zh;q=0.9\"\n}\n",
"jsLib": "\/\/ XChaCha20Poly1305 decrypt (pure-JS HChaCha20 + Java JCE ChaCha20-Poly1305)\nfunction ting_hchacha_run(state){\n function qr(s,ai,bi,ci,di){\n s[ai]=(s[ai]+s[bi])>>>0; s[di]=(((s[di]^s[ai])<<16)|((s[di]^s[ai])>>>16))>>>0;\n s[ci]=(s[ci]+s[di])>>>0; s[bi]=(((s[bi]^s[ci])<<12)|((s[bi]^s[ci])>>>20))>>>0;\n s[ai]=(s[ai]+s[bi])>>>0; s[di]=(((s[di]^s[ai])<<8)|((s[di]^s[ai])>>>24))>>>0;\n s[ci]=(s[ci]+s[di])>>>0; s[bi]=(((s[bi]^s[ci])<<7)|((s[bi]^s[ci])>>>25))>>>0;\n }\n for(var i=0;i<10;i++){\n qr(state,0,4,8,12); qr(state,1,5,9,13); qr(state,2,6,10,14); qr(state,3,7,11,15);\n qr(state,0,5,10,15); qr(state,1,6,11,12); qr(state,2,7,8,13); qr(state,3,4,9,14);\n }\n}\nfunction ting_hchacha(keyBytes, nonce16){\n var s=[\n 0x61707865,0x3320646e,0x79622d32,0x6b206574,\n keyBytes[0]|keyBytes[1]<<8|keyBytes[2]<<16|keyBytes[3]<<24,\n keyBytes[4]|keyBytes[5]<<8|keyBytes[6]<<16|keyBytes[7]<<24,\n keyBytes[8]|keyBytes[9]<<8|keyBytes[10]<<16|keyBytes[11]<<24,\n keyBytes[12]|keyBytes[13]<<8|keyBytes[14]<<16|keyBytes[15]<<24,\n keyBytes[16]|keyBytes[17]<<8|keyBytes[18]<<16|keyBytes[19]<<24,\n keyBytes[20]|keyBytes[21]<<8|keyBytes[22]<<16|keyBytes[23]<<24,\n keyBytes[24]|keyBytes[25]<<8|keyBytes[26]<<16|keyBytes[27]<<24,\n keyBytes[28]|keyBytes[29]<<8|keyBytes[30]<<16|keyBytes[31]<<24,\n nonce16[0]|nonce16[1]<<8|nonce16[2]<<16|nonce16[3]<<24,\n nonce16[4]|nonce16[5]<<8|nonce16[6]<<16|nonce16[7]<<24,\n nonce16[8]|nonce16[9]<<8|nonce16[10]<<16|nonce16[11]<<24,\n nonce16[12]|nonce16[13]<<8|nonce16[14]<<16|nonce16[15]<<24,\n ];\n ting_hchacha_run(s);\n var out=new Uint8Array(32);\n var ws=[s[0],s[1],s[2],s[3],s[12],s[13],s[14],s[15]];\n for(var i=0;i<8;i++){var w=ws[i];out[i*4]=w&255;out[i*4+1]=(w>>>8)&255;out[i*4+2]=(w>>>16)&255;out[i*4+3]=(w>>>24)&255;}\n return out;\n}\nfunction __hex2bytes(hex){var len=hex.length;var out=new Uint8Array(len>>1);for(var i=0;i<out.length;i++){out[i]=parseInt(hex.slice(2*i,2*i+2),16);}return out;}\nfunction __toByteArr(u8){var ba=new Packages.java.io.ByteArrayOutputStream();for(var i=0;i<u8.length;i++){ba.write(u8[i]&255);}return ba.toByteArray();}\nfunction ting_decryptPayload(hexPayload, hexKey){\n var k=__hex2bytes(hexKey);\n var buf=__hex2bytes(hexPayload);\n var nonce=new Uint8Array(24);\n for(var i=0;i<24;i++){nonce[i]=buf[i+1];}\n var ctArea=buf.subarray(25);\n var ct=new Uint8Array(ctArea.length);\n for(var j=0;j<ctArea.length;j++){ct[j]=ctArea[j];}\n var ver=buf[0];\n if(ver===2){ \/\/ reverse ct\n var rev=new Uint8Array(ct.length);\n for(var r=0;r<ct.length;r++){rev[r]=ct[ct.length-1-r];}\n ct=rev;\n }\n var subkey=ting_hchacha(k, nonce.subarray(0,16));\n var nonce12=new Uint8Array(12);\n for(var n4=0;n4<8;n4++){nonce12[4+n4]=nonce[16+n4];}\n var cipher=Packages.javax.crypto.Cipher.getInstance(\"ChaCha20-Poly1305\");\n var sk=new Packages.javax.crypto.spec.SecretKeySpec(__toByteArr(subkey), \"ChaCha20\");\n var gcm=new Packages.javax.crypto.spec.GCMParameterSpec(128, __toByteArr(nonce12));\n cipher.init(javax.crypto.Cipher.DECRYPT_MODE, sk, gcm);\n var pb=cipher.doFinal(__toByteArr(ct));\n return new java.lang.String(pb, \"UTF-8\");\n}\n",
"lastUpdateTime": "1788148651693",
"respondTime": 180000,
"ruleBookInfo": {
"author": "meta[name=author]@content",
"coverUrl": "meta[property=og:image]@content",
"intro": "meta[name=description]@content",
"kind": "meta[name=album-status]@content",
"name": "meta[property=og:title]@content## - 听友FM.*",
"wordCount": "meta[name=chapter-count]@content##$##集"
},
"ruleContent": {
"content": "@webjs:(function(){var a=document.querySelector('.root-audio');if(a&&a.src&&a.src.indexOf('blob:')!==0){return a.src}var p=document.querySelector('.play-btn');if(p&&!window.__tyauto){window.__tyauto=1;p.click()}return null})()",
"title": "meta[property=og:title]@content"
},
"ruleExplore": {
"author": ".info .info-item:nth-of-type(5)@text##作者:",
"bookList": "@js:(function(){var ty=\"46\";var so=\"popular\";var p=1;try{var bu=String(baseUrl||\"\");var tm=bu.match(\/[?&]type=(\\d+)\/);if(tm)ty=tm[1];var sm=bu.match(\/[?&]sort=([a-z]+)\/);if(sm)so=sm[1];var pm=bu.match(\/[?&]page=(\\d+)\/);if(pm)p=parseInt(pm[1]);}catch(e){}var url=\"https:\/\/json.hgeuz.cn\/tyfm\/json_v1\/types\/\"+ty+\"\/\"+so+\"\/p\"+p;var raw=java.ajax(url);var m=String(raw).match(\/\"payload\":\"([0-9a-f]+)\"\/);if(!m)return [];var plain=ting_decryptPayload(m[1],\"ea9d9d4f9a983fe6f6382f29c7b46b8d6dc47abc6da36662e6ddff8c78902f65\");var data=JSON.parse(plain);var arr=data&&data.data?data.data:[];var out=[];for(var i=0;i<arr.length;i++){var a=arr[i];out.push({name:String(a.title),cover:String(a.cover_url),url:\"https:\/\/tingyou.fm\/albums\/\"+a.id});}return out;})()",
"bookUrl": "url",
"coverUrl": "cover",
"kind": ".info .info-item:nth-of-type(3)@text##分类:",
"name": "name",
"wordCount": ".info .info-item:nth-of-type(1)@text##期.*"
},
"ruleSearch": {
"author": ".info .info-item:nth-of-type(5)@text##作者:",
"bookList": "@js:(function(){var s=String(result);var m=s.match(\/__NUXT_DATA__[^>]*>([\\s\\S]*?)<\\\/script>\/);if(!m)return [];var arr=JSON.parse(m[1]);var list=null;for(var i=0;i<arr.length;i++){var o=arr[i];if(o&&typeof o===\"object\"&&!(o instanceof Array)&&o.searchResults!==undefined){var sr=o.searchResults;var so=(typeof sr===\"number\")?arr[sr]:sr;if(so){var lk=so.list;list=(typeof lk===\"number\")?arr[lk]:lk;}break;}}if(!list||!list.length)return [];var out=[];var seen={};for(var j=0;j<list.length;j++){var ref=list[j];var co=(typeof ref===\"number\")?arr[ref]:ref;if(co&&typeof co===\"object\"){var id=arr[co.id];var t=arr[co.title];var c=arr[co.cover];if(id&&t&&c&&!seen[id]){seen[id]=1;out.push({name:String(t),cover:String(c),url:\"https:\/\/tingyou.fm\/albums\/\"+id});}}}return out;})()",
"bookUrl": "url",
"checkKeyWord": "狂龙",
"coverUrl": "cover",
"kind": ".info .info-item:nth-of-type(3)@text##分类:",
"name": "name",
"wordCount": ".info .info-item:nth-of-type(1)@text##期.*"
},
"ruleToc": {
"chapterList": "@js:(function(){var s=String(result);var m=s.match(\/__NUXT_DATA__[^>]*>([\\s\\S]*?)<\\\/script>\/);if(!m)return [];var arr=[];try{arr=JSON.parse(m[1])}catch(e){return [];}var ci=-1;for(var i=0;i<arr.length;i++){var o=arr[i];if(o&&typeof o==='object'&&!(o instanceof Array)&&o.chapters!==undefined){ci=i;break;}}if(ci<0)return [];var crefs=arr[ci].chapters;var cr=(typeof crefs==='number')?arr[crefs]:crefs;if(!cr||!cr.length)return [];var out=[];var bm=String(baseUrl).match(\/albums\\\/(\\d+)\/);var bid=bm?bm[1]:'';for(var j=0;j<cr.length;j++){var co=arr[cr[j]];if(co&&typeof co==='object'){out.push({name:String(arr[co.title]),url:'https:\/\/tingyou.fm\/audios\/'+bid+'\/'+String(arr[co.index])});}}return out;})()",
"chapterName": "name",
"chapterUrl": "url"
},
"searchUrl": "https:\/\/tingyou.fm\/search\/result?keyword={{key}}&page={{page}},{\"retry\":5}",
"weight": 0
}