old_contents: #!/usr/bin/env python
  
  import re
  import json
  from ..extractor import VideoExtractor
  from ..common import get_content, playlist_not_supported
  
  
  class Xinpianchang(VideoExtractor):
      stream_types = [
          {'id': '4K', 'quality': '超清 4K', 'video_profile': 'mp4-4K'},
          {'id': '2K', 'quality': '超清 2K', 'video_profile': 'mp4-2K'},
          {'id': '1080', 'quality': '高清 1080P', 'video_profile': 'mp4-FHD'},
          {'id': '720', 'quality': '高清 720P', 'video_profile': 'mp4-HD'},
          {'id': '540', 'quality': '清晰 540P', 'video_profile': 'mp4-SD'},
          {'id': '360', 'quality': '流畅 360P', 'video_profile': 'mp4-LD'}
      ]
  
      name = 'xinpianchang'
  
      def prepare(self, **kwargs):
          # find key
          page_content = get_content(self.url)
          match_rule = r"vid: \"(.+?)\","
          key = re.findall(match_rule, page_content)[0]
  
          # get videos info
          video_url = 'https://openapi-vtom.vmovier.com/v3/video/' + key + '?expand=resource'
          data = json.loads(get_content(video_url))
          self.title = data["data"]["video"]["title"]
          video_info = data["data"]["resource"]["progressive"]
  
          # set streams dict
          for video in video_info:
              url = video["https_url"]
              size = video["filesize"]
              profile = video["profile_code"]
              stype = [st for st in self.__class__.stream_types if st['video_profile'] == profile][0]
  
              stream_data = dict(src=[url], size=size, container='mp4', quality=stype['quality'])
              self.streams[stype['id']] = stream_data
  
  
  download = Xinpianchang().download_by_url
  download_playlist = playlist_not_supported('xinpianchang')
  
new_contents: #!/usr/bin/env python
  
  import re
  import json
  from ..extractor import VideoExtractor
  from ..common import get_content, playlist_not_supported
  
  
  class Xinpianchang(VideoExtractor):
      name = 'xinpianchang'
      stream_types = [
          {'id': '4K', 'quality': '超清 4K', 'video_profile': 'mp4-4K'},
          {'id': '2K', 'quality': '超清 2K', 'video_profile': 'mp4-2K'},
          {'id': '1080', 'quality': '高清 1080P', 'video_profile': 'mp4-FHD'},
          {'id': '720', 'quality': '高清 720P', 'video_profile': 'mp4-HD'},
          {'id': '540', 'quality': '清晰 540P', 'video_profile': 'mp4-SD'},
          {'id': '360', 'quality': '流畅 360P', 'video_profile': 'mp4-LD'}
      ]
  
      def prepare(self, **kwargs):
          # find key
          page_content = get_content(self.url)
          match_rule = r"vid: \"(.+?)\","
          key = re.findall(match_rule, page_content)[0]
  
          # get videos info
          video_url = 'https://openapi-vtom.vmovier.com/v3/video/' + key + '?expand=resource'
          data = json.loads(get_content(video_url))
          self.title = data["data"]["video"]["title"]
          video_info = data["data"]["resource"]["progressive"]
  
          # set streams dict
          for video in video_info:
              url = video["https_url"]
              size = video["filesize"]
              profile = video["profile_code"]
              stype = [st for st in self.__class__.stream_types if st['video_profile'] == profile][0]
  
              stream_data = dict(src=[url], size=size, container='mp4', quality=stype['quality'])
              self.streams[stype['id']] = stream_data
  
  
  download = Xinpianchang().download_by_url
  download_playlist = playlist_not_supported('xinpianchang')
  
subject: Update xinpianchang.py