def set_key(self, home_url: str, base_url: str, line: str): xkey = XKey().set_attrs_from_line(home_url, base_url, line) if xkey is None: return if self.xkey is None: self.xkey = xkey else: self.bakcup_xkey = xkey
def try_fetch_key(self, args: CmdArgs): ''' 在解析过程中 已经设置了key的信息了 但是没有请求key 这里是独立加载key的部分 放在这个位置的原因是 - 解析过程其实很短,没必要在解析时操作 - 解析后还有合并流的过程 所以最佳的方案是在解析之后再进行key的加载 ''' custom_xkey = XKey() if args.b64key is not None: _key = base64.b64decode(args.b64key.encode('utf-8')) custom_xkey.set_key(_key) if args.hexiv is not None: custom_xkey.set_iv(args.hexiv) if self.xkey is None: if args.b64key: # 如果解析后没有密钥相关信息 # 而命令行又指定了 也进行设定 self.set_segments_key(custom_xkey) return if self.xkey.method and self.xkey.method.upper() in [ 'SAMPLE-AES', 'SAMPLE-AES-CTR' ]: return if self.xkey.load(args, custom_xkey) is True: logger.info( f'm3u8 key loaded\nmethod => {self.xkey.method}\nkey => {self.xkey.key}\niv => {self.xkey.iv}' ) self.set_segments_key(self.xkey)
def try_fetch_key(self, args: CmdArgs): ''' 在解析过程中 已经设置了key的信息了 但是没有请求key 这里是独立加载key的部分 放在这个位置的原因是 - 解析过程其实很短,没必要在解析时操作 - 解析后还有合并流的过程 所以最佳的方案是在解析之后再进行key的加载 ''' custom_xkey = XKey() if args.b64key is not None: _key = base64.b64decode(args.b64key.encode('utf-8')) custom_xkey.set_key(_key) if args.hexiv is not None: custom_xkey.set_iv(args.hexiv) if self.xkey is None: if args.b64key: # 如果解析后没有密钥相关信息 # 而命令行又指定了 也进行设定 self.set_segments_key(custom_xkey) return if self.xkey.load(args, custom_xkey) is True: self.set_segments_key(self.xkey)
def set_key(self, home_url: str, base_url: str, line: str): self.has_set_key = True xkey = XKey().set_attrs_from_line(home_url, base_url, line) if xkey is not None: self.xkey = xkey