code: def search_videohub(cls, query, filters=None, status=None, sort=None, size=None, page=None):
          url = getattr(settings, "VIDEOHUB_API_SEARCH_URL", cls.DEFAULT_VIDEOHUB_API_SEARCH_URL)
          headers = {
              "Content-Type": "application/json",
              "Authorization": settings.VIDEOHUB_API_TOKEN,
          }
          payload = {
              "query": query,
          }
          if filters:
              assert isinstance(filters, dict)
              payload["filters"] = filters
          if status:
              assert isinstance(status, six.string_types)
              payload.setdefault("filters", {})
              payload["filters"]["status"] = status
          if sort:
              assert isinstance(sort, dict)
              payload["sort"] = sort
          if size:
              assert isinstance(size, (six.string_types, int))
              payload["size"] = size
          if page:
              assert isinstance(page, (six.string_types, int))
              payload["page"] = page
          res = requests.post(url, data=json.dumps(payload), headers=headers)
          if res.status_code != 200:
              res.raise_for_status()
          return json.loads(res.content)