def METHOD_NAME(self, video_id):
    json = self.session.http.post(
        f"https://api-web.trovo.live/graphql?qid={self.generate_qid()}",
        json=[{
            "operationName": "vod_VodReaderService_BatchGetVodDetailInfo",
            "variables": {
                "params": {
                    "vids": [video_id],
                },
            },
            "extensions": {},
        }],
        schema=validate.Schema(
            validate.parse_json(),
            [{
                "data": {
                    "vod_VodReaderService_BatchGetVodDetailInfo": {
                        "VodDetailInfos": validate.any(
                            {
                                video_id: {
                                    "streamerInfo": {
                                        "userName": str,
                                    },
                                    "vodInfo": {
                                        "playInfos": [{
                                            "desc": validate.all(validate.transform(lambda s: s.lower()), str),
                                            "playUrl": validate.url(),
                                        }],
                                        "vid": str,
                                        "title": str,
                                        "categoryName": str,
                                        "playbackRights": {
                                            "playbackRightsSetting": str,
                                            "playbackRights": str,
                                        },
                                    },
                                },
                            },
                            {},
                        ),
                    },
                },
            }],
            validate.get((0, "data", "vod_VodReaderService_BatchGetVodDetailInfo", "VodDetailInfos", video_id)),
        ),
    )
    if not json:
        log.error("Video not found")
        return
    log.debug(json["vodInfo"]["playbackRights"])
    self.id = json["vodInfo"]["vid"]
    self.author = json["streamerInfo"]["userName"]
    self.title = json["vodInfo"]["title"]
    self.category = json["vodInfo"]["categoryName"]
    for s in json["vodInfo"]["playInfos"]:
        q = s["desc"]
        if "(source)" in q:
            q = "source"
        yield q, HLSStream(self.session, update_scheme("https:", s["playUrl"]))