def fix_m3u8_chunk_url(self, index_url: str, chunk_url: str) -> str: """ 替换 m3u8 文件中数据块的链接, 通常需要补全域名, 默认情况使用 index.m3u8 的域名补全数据块域名部分, 其它情况请重新此方法 :param index_url: index.m3u8 的链接 :param chunk_url: m3u8 文件中数据块的链接(通常不完整) :return: 修复完成的 m3u8 文件 """ if chunk_url.startswith("http"): # url 无需补全 return chunk_url elif chunk_url.startswith('/'): return extract_domain(index_url) + chunk_url else: return extract_domain(index_url) + '/' + chunk_url
async def get_m3u8_text(self, index_url: str) -> str: if "dious.cc" in index_url: # 需要再跳转一次 text = await self.read_text(index_url) index_url = extract_domain(index_url) + text.split()[-1] return await self.read_text(index_url)