예제 #1
0
    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
예제 #2
0
    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)