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