def METHOD_NAME(self):
    login_session_id = self.get_option("sessionid")
    login_device_token = self.get_option("devicetoken")
    if self.options.get("purge_credentials"):
        self.clear_cookies()
        self._authed = False
        log.info("All credentials were successfully removed.")
    if self._authed:
        log.debug("Attempting to authenticate using cached cookies")
    elif login_session_id and login_device_token:
        self._login_using_session_id_and_device_token(login_session_id, login_device_token)
    streamer_data = self.get_streamer_data()
    performers = streamer_data.get("performers")
    log.trace("{0!r}".format(streamer_data))
    if performers:
        co_hosts = [(p["user"]["unique_name"], p["user"]["name"]) for p in performers]
        log.info("Available hosts: {0}".format(", ".join(
            ["{0} ({1})".format(k, v) for k, v in co_hosts])))
        # control if the host from --pixiv-performer is valid,
        # if not let the User select a different host
        if self.get_option("performer") and self.get_option("performer") not in [v[0] for v in co_hosts]:
            # print the owner as 0
            log.info("0 - {0} ({1})".format(
                streamer_data["owner"]["user"]["unique_name"],
                streamer_data["owner"]["user"]["name"]))
            # print all other performer
            for i, item in enumerate(co_hosts, start=1):
                log.info("{0} - {1} ({2})".format(i, item[0], item[1]))
            try:
                number = int(self.input_ask(
                    "Enter the number you'd like to watch").split(" ")[0])
                if number == 0:
                    # default stream
                    self.set_option("performer", None)
                else:
                    # other co-hosts
                    self.set_option("performer", co_hosts[number - 1][0])
            except FatalPluginError:
                log.error("Selected performer is invalid.")
                return
            except (IndexError, ValueError, TypeError):
                log.error("Input is invalid")
                return
    # ignore the owner stream, if a performer is selected
    # or use it when there are no other performers
    if not self.get_option("performer") or not performers:
        return self.hls_stream(streamer_data["owner"]["hls_movie"]["url"])
    # play a co-host stream
    if performers and self.get_option("performer"):
        for p in performers:
            if p["user"]["unique_name"] == self.get_option("performer"):
                # if someone goes online at the same time as Streamlink
                # was used, the hls URL might not be in the JSON data
                hls_movie = p.get("hls_movie")
                if hls_movie:
                    return self.hls_stream(hls_movie["url"])