def METHOD_NAME(self, video_id):
    api_key = self.settings["api_key"]
    if not api_key:
        self.log("No API key specified")
        return None
    try:
        from urllib.request import urlopen
        with urlopen((f"https://www.googleapis.com/youtube/v3/videos?part=snippet,statistics,contentDetails"
                      f"&id={video_id}&key={api_key}"), timeout=10) as response:
            response_body = response.read().decode("utf-8")
    except Exception as error:
        self.log("Failed to connect to www.googleapis.com: %s", error)
        return None
    try:
        data = json.loads(response_body)
    except Exception as error:
        self.log("Failed to parse response from www.googleapis.com: %s", str(error))
        return None
    if "error" in data:
        error_message = data["error"].get("message", False)
        if not error_message:
            # This should not occur
            error_message = str(data["error"])
        self.log(error_message)
        return None
    total_results = data.get("pageInfo", {}).get("totalResults", False)
    if not total_results:
        if isinstance(total_results, int):
            # Video removed / invalid id
            self.log("Video unavailable")
        elif isinstance(total_results, bool):
            # This should not occur
            self.log("Youtube API appears to be broken")
        return None
    try:
        data = data["items"][0]
        title = data["snippet"]["title"]
        description = data["snippet"]["description"]
        channel = data["snippet"]["channelTitle"]
        live = data["snippet"]["liveBroadcastContent"]
        duration = data["contentDetails"]["duration"]
        quality = data["contentDetails"]["definition"].upper()
        views = data["statistics"].get("viewCount", "RESTRICTED")
        likes = data["statistics"].get("likeCount", "LIKES")
    except KeyError:
        # This should not occur
        self.log('An error occurred while parsing id "%s"', video_id)
        return None
    if likes != "LIKES":
        likes = humanize(int(likes))
    if views != "RESTRICTED":
        views = humanize(int(views))
    if live in {"live", "upcoming"}:
        duration = live.upper()
    else:
        duration = self.get_duration(duration)
    return {
        "%title%": title, "%description%": description, "%duration%": duration, "%quality%": quality,
        "%channel%": channel, "%views%": views, "%likes%": likes
    }