LuanRT / YouTube.js

A JavaScript client for YouTube's private API, known as InnerTube.
https://ytjs.dev
MIT License
3.55k stars 225 forks source link

9.2.0 - video details is N/A #629

Closed meghe2000 closed 6 months ago

meghe2000 commented 6 months ago

Steps to reproduce

image

The information of public videos is complete, but hidden videos have incomplete information.

example video id: JoiQNkRcjm4

Failure Logs

{
    "type": "Video",
    "id": "JoiQNkRcjm4",
    "title": {
        "runs": [
            {
                "text": "Live | Multan Sultans vs Lahore Qalandars | Match 7 | HBL PSL 9",
                "bold": false,
                "italics": false,
                "strikethrough": false
            }
        ],
        "text": "Live | Multan Sultans vs Lahore Qalandars | Match 7 | HBL PSL 9"
    },
    "description_snippet": {
        "runs": [
            {
                "text": "Live | Multan Sultans vs Lahore Qalandars | Match 7 | HBL PSL 9\n\n#MSvLQ | #HBLPSL9 | #KhulKeKhel | #SportsCentral \n\nFor Latest Updates Follow Us On Facebook & Instagram NOW\nhttps://www.facebook.com...",
                "bold": false,
                "italics": false,
                "strikethrough": false
            }
        ],
        "text": "Live | Multan Sultans vs Lahore Qalandars | Match 7 | HBL PSL 9\n\n#MSvLQ | #HBLPSL9 | #KhulKeKhel | #SportsCentral \n\nFor Latest Updates Follow Us On Facebook & Instagram NOW\nhttps://www.facebook.com..."
    },
    "expandable_metadata": null,
    "thumbnails": [
        {
            "url": "https://i.ytimg.com/vi/JoiQNkRcjm4/hq720_live.jpg?sqp=CMDh2K4G-oaymwEXCNAFEJQDSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBCfvDPEYeE-Lr8nIBtnXYX9b22zg",
            "width": 720,
            "height": 404
        },
        {
            "url": "https://i.ytimg.com/vi/JoiQNkRcjm4/hq720_live.jpg?sqp=CMDh2K4G-oaymwEjCOgCEMoBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE=&rs=AOn4CLBNfQh26Lgp4oSVXu6oCk6SFzaF-g",
            "width": 360,
            "height": 202
        }
    ],
    "thumbnail_overlays": [
        {
            "type": "ThumbnailOverlayToggleButton",
            "is_toggled": false,
            "icon_type": {
                "toggled": "CHECK",
                "untoggled": "WATCH_LATER"
            },
            "tooltip": {
                "toggled": "Added",
                "untoggled": "Watch later"
            },
            "toggled_endpoint": {
                "type": "NavigationEndpoint",
                "payload": {
                    "playlistId": "WL",
                    "actions": [
                        {
                            "action": "ACTION_REMOVE_VIDEO_BY_VIDEO_ID",
                            "removedVideoId": "JoiQNkRcjm4"
                        }
                    ]
                },
                "metadata": {
                    "api_url": "browse/edit_playlist",
                    "send_post": true
                }
            },
            "untoggled_endpoint": {
                "type": "NavigationEndpoint",
                "payload": {
                    "playlistId": "WL",
                    "actions": [
                        {
                            "addedVideoId": "JoiQNkRcjm4",
                            "action": "ACTION_ADD_VIDEO"
                        }
                    ]
                },
                "metadata": {
                    "api_url": "browse/edit_playlist",
                    "send_post": true
                }
            }
        },
        {
            "type": "ThumbnailOverlayToggleButton",
            "icon_type": {
                "toggled": "PLAYLIST_ADD_CHECK",
                "untoggled": "ADD_TO_QUEUE_TAIL"
            },
            "tooltip": {
                "toggled": "Added",
                "untoggled": "Add to queue"
            },
            "toggled_endpoint": {
                "type": "NavigationEndpoint",
                "payload": {},
                "metadata": {}
            },
            "untoggled_endpoint": {
                "type": "NavigationEndpoint",
                "payload": {
                    "signal": "CLIENT_SIGNAL",
                    "actions": [
                        {
                            "clickTrackingParams": "CJoEEMfsBBgDIhMIj8Opjvm8hAMV60Z6BR2bygQ7",
                            "addToPlaylistCommand": {
                                "openMiniplayer": true,
                                "videoId": "JoiQNkRcjm4",
                                "listType": "PLAYLIST_EDIT_LIST_TYPE_QUEUE",
                                "onCreateListCommand": {
                                    "clickTrackingParams": "CJoEEMfsBBgDIhMIj8Opjvm8hAMV60Z6BR2bygQ7",
                                    "commandMetadata": {
                                        "webCommandMetadata": {
                                            "sendPost": true,
                                            "apiUrl": "/youtubei/v1/playlist/create"
                                        }
                                    },
                                    "createPlaylistServiceEndpoint": {
                                        "videoIds": [
                                            "JoiQNkRcjm4"
                                        ],
                                        "params": "CAQ%3D"
                                    }
                                },
                                "videoIds": [
                                    "JoiQNkRcjm4"
                                ]
                            }
                        }
                    ]
                },
                "metadata": {
                    "send_post": true
                }
            }
        },
        {
            "type": "ThumbnailOverlayNowPlaying",
            "text": "Now playing"
        },
        {
            "type": "ThumbnailOverlayLoadingPreview",
            "text": {
                "runs": [
                    {
                        "text": "Keep hovering to play",
                        "bold": false,
                        "italics": false,
                        "strikethrough": false
                    }
                ],
                "text": "Keep hovering to play"
            }
        }
    ],
    "author": {
        "id": "UC-fzWbU1zavz77kP1gPPdSg",
        "name": "Sports Central",
        "thumbnails": [
            {
                "url": "https://yt3.ggpht.com/tfjcJLQcJ-xZpn2PvJEDMmXkeHeUbDOkas-k68Gcw6tezYJqhre6x22tsWeX5wegCnAKOu3J=s68-c-k-c0x00ffffff-no-rj",
                "width": 68,
                "height": 68
            }
        ],
        "endpoint": {
            "type": "NavigationEndpoint",
            "payload": {
                "browseId": "UC-fzWbU1zavz77kP1gPPdSg",
                "canonicalBaseUrl": "/@SportsCentralOfficial"
            },
            "metadata": {
                "url": "/@SportsCentralOfficial",
                "page_type": "WEB_PAGE_TYPE_CHANNEL",
                "api_url": "browse"
            }
        },
        "badges": [
            {
                "type": "MetadataBadge",
                "icon_type": "CHECK_CIRCLE_THICK",
                "style": "BADGE_STYLE_TYPE_VERIFIED",
                "tooltip": "Verified"
            }
        ],
        "is_moderator": false,
        "is_verified": true,
        "is_verified_artist": false,
        "url": "https://www.youtube.com/@SportsCentralOfficial"
    },
    "badges": [
        {
            "type": "MetadataBadge",
            "icon_type": "LIVE",
            "style": "BADGE_STYLE_TYPE_LIVE_NOW",
            "label": "LIVE"
        }
    ],
    "endpoint": {
        "type": "NavigationEndpoint",
        "payload": {
            "videoId": "JoiQNkRcjm4",
            "watchEndpointSupportedOnesieConfig": {
                "html5PlaybackOnesieConfig": {
                    "commonConfig": {
                        "url": "https://rr1---sn-4g5e6nze.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&siu=1&msp=1&odepv=1&id=26889036445c8e6e&ip=2a01%3A4f8%3A1c1b%3A28d0%3A%3A1&initcwndbps=428750&mt=1708535863&oweuc="
                    }
                }
            }
        },
        "metadata": {
            "url": "/watch?v=JoiQNkRcjm4",
            "page_type": "WEB_PAGE_TYPE_WATCH",
            "api_url": "/player"
        }
    },
    "published": {},
    "view_count": {
        "runs": [
            {
                "text": "18,449",
                "bold": false,
                "italics": false,
                "strikethrough": false
            },
            {
                "text": " watching",
                "bold": false,
                "italics": false,
                "strikethrough": false
            }
        ],
        "text": "18,449 watching"
    },
    "short_view_count": {
        "runs": [
            {
                "text": "18K",
                "bold": false,
                "italics": false,
                "strikethrough": false
            },
            {
                "text": " watching",
                "bold": false,
                "italics": false,
                "strikethrough": false
            }
        ],
        "text": "18K watching"
    },
    "duration": {
        "text": "N/A",
        "seconds": null
    },
    "show_action_menu": false,
    "is_watched": false,
    "menu": {
        "type": "Menu",
        "items": [
            {
                "type": "MenuServiceItem",
                "text": "Add to queue",
                "icon_type": "ADD_TO_QUEUE_TAIL",
                "endpoint": {
                    "type": "NavigationEndpoint",
                    "payload": {
                        "signal": "CLIENT_SIGNAL",
                        "actions": [
                            {
                                "clickTrackingParams": "CKUEEP6YBBgJIhMIj8Opjvm8hAMV60Z6BR2bygQ7",
                                "addToPlaylistCommand": {
                                    "openMiniplayer": true,
                                    "videoId": "JoiQNkRcjm4",
                                    "listType": "PLAYLIST_EDIT_LIST_TYPE_QUEUE",
                                    "onCreateListCommand": {
                                        "clickTrackingParams": "CKUEEP6YBBgJIhMIj8Opjvm8hAMV60Z6BR2bygQ7",
                                        "commandMetadata": {
                                            "webCommandMetadata": {
                                                "sendPost": true,
                                                "apiUrl": "/youtubei/v1/playlist/create"
                                            }
                                        },
                                        "createPlaylistServiceEndpoint": {
                                            "videoIds": [
                                                "JoiQNkRcjm4"
                                            ],
                                            "params": "CAQ%3D"
                                        }
                                    },
                                    "videoIds": [
                                        "JoiQNkRcjm4"
                                    ]
                                }
                            }
                        ]
                    },
                    "metadata": {
                        "send_post": true
                    }
                }
            },
            {
                "type": "MenuServiceItem",
                "text": "Save to Watch later",
                "icon_type": "WATCH_LATER",
                "endpoint": {
                    "type": "NavigationEndpoint",
                    "payload": {
                        "playlistId": "WL",
                        "actions": [
                            {
                                "addedVideoId": "JoiQNkRcjm4",
                                "action": "ACTION_ADD_VIDEO"
                            }
                        ]
                    },
                    "metadata": {
                        "api_url": "browse/edit_playlist",
                        "send_post": true
                    }
                }
            },
            {
                "type": "MenuServiceItem",
                "text": "Save to playlist",
                "icon_type": "PLAYLIST_ADD",
                "endpoint": {
                    "type": "NavigationEndpoint",
                    "payload": {
                        "videoId": "JoiQNkRcjm4"
                    },
                    "metadata": {
                        "api_url": "playlist/get_add_to_playlist",
                        "send_post": true
                    }
                }
            },
            {
                "type": "MenuServiceItem",
                "text": "Share",
                "icon_type": "SHARE",
                "endpoint": {
                    "type": "NavigationEndpoint",
                    "payload": {
                        "serializedShareEntity": "CgtKb2lRTmtSY2ptNA%3D%3D",
                        "commands": [
                            {
                                "clickTrackingParams": "CJkEENwwIhMIj8Opjvm8hAMV60Z6BR2bygQ7",
                                "openPopupAction": {
                                    "popup": {
                                        "unifiedSharePanelRenderer": {
                                            "trackingParams": "CKMEEI5iIhMIj8Opjvm8hAMV60Z6BR2bygQ7",
                                            "showLoadingSpinner": true
                                        }
                                    },
                                    "popupType": "DIALOG",
                                    "beReused": true
                                }
                            }
                        ]
                    },
                    "metadata": {
                        "api_url": "share/get_share_panel",
                        "send_post": true
                    }
                }
            },
            {
                "type": "MenuServiceItem",
                "text": "Not interested",
                "icon_type": "NOT_INTERESTED",
                "endpoint": {
                    "type": "NavigationEndpoint",
                    "payload": {
                        "feedbackToken": "AB9zfpJdCqJmSkh9ykzpG3Bqa9baWRU1vAHjBs3nymfQJ-pKMMR0w7xbVIb1NOxIcJFDC2pU9c0sjvDkkW8vHUmB4I9Rf79nHTIsUKqEgQ3s6Cy4sJlrd9lCKYGyFpltdQo1v9jqaHo2",
                        "uiActions": {
                            "hideEnclosingContainer": true
                        },
                        "actions": [
                            {
                                "clickTrackingParams": "CJkEENwwIhMIj8Opjvm8hAMV60Z6BR2bygQ7",
                                "replaceEnclosingAction": {
                                    "item": {
                                        "notificationMultiActionRenderer": {
                                            "responseText": {
                                                "accessibility": {
                                                    "accessibilityData": {
                                                        "label": "Video removed: Live | Multan Sultans vs Lahore Qalandars | Match 7 | HBL PSL 9."
                                                    }
                                                },
                                                "simpleText": "Video removed"
                                            },
                                            "buttons": [
                                                {
                                                    "buttonRenderer": {
                                                        "style": "STYLE_BLUE_TEXT",
                                                        "text": {
                                                            "simpleText": "Undo"
                                                        },
                                                        "serviceEndpoint": {
                                                            "clickTrackingParams": "CKIEEPBbGAAiEwiPw6mO-byEAxXrRnoFHZvKBDs=",
                                                            "commandMetadata": {
                                                                "webCommandMetadata": {
                                                                    "sendPost": true,
                                                                    "apiUrl": "/youtubei/v1/feedback"
                                                                }
                                                            },
                                                            "undoFeedbackEndpoint": {
                                                                "undoToken": "AB9zfpJpSHROrZ53AYFNKl-6AvGW9yfOInNufmJweQSie0cP1710XUmFM2wfnTRbq-Q1nCwUTw-oQ6b3-2f4MdqrmL33BiOcbAsQD2rf6u3-B82zJEuJZgEa3NGjjX_EYET643qMIFbj",
                                                                "actions": [
                                                                    {
                                                                        "clickTrackingParams": "CKIEEPBbGAAiEwiPw6mO-byEAxXrRnoFHZvKBDs=",
                                                                        "undoFeedbackAction": {
                                                                            "hack": true
                                                                        }
                                                                    }
                                                                ]
                                                            }
                                                        },
                                                        "trackingParams": "CKIEEPBbGAAiEwiPw6mO-byEAxXrRnoFHZvKBDs="
                                                    }
                                                },
                                                {
                                                    "buttonRenderer": {
                                                        "style": "STYLE_BLUE_TEXT",
                                                        "text": {
                                                            "runs": [
                                                                {
                                                                    "text": "Tell us why"
                                                                }
                                                            ]
                                                        },
                                                        "serviceEndpoint": {
                                                            "clickTrackingParams": "CKEEEPBbGAEiEwiPw6mO-byEAxXrRnoFHZvKBDs=",
                                                            "commandMetadata": {
                                                                "webCommandMetadata": {
                                                                    "sendPost": true
                                                                }
                                                            },
                                                            "signalServiceEndpoint": {
                                                                "signal": "CLIENT_SIGNAL",
                                                                "actions": [
                                                                    {
                                                                        "clickTrackingParams": "CKEEEPBbGAEiEwiPw6mO-byEAxXrRnoFHZvKBDs=",
                                                                        "signalAction": {
                                                                            "signal": "TELL_US_WHY"
                                                                        }
                                                                    }
                                                                ]
                                                            }
                                                        },
                                                        "trackingParams": "CKEEEPBbGAEiEwiPw6mO-byEAxXrRnoFHZvKBDs="
                                                    }
                                                }
                                            ],
                                            "trackingParams": "CKAEEKW8ASITCI_DqY75vIQDFetGegUdm8oEOw==",
                                            "dismissalViewStyle": "DISMISSAL_VIEW_STYLE_COMPACT_TALL"
                                        }
                                    }
                                }
                            }
                        ]
                    },
                    "metadata": {
                        "api_url": "feedback",
                        "send_post": true
                    }
                }
            },
            {
                "type": "MenuServiceItem",
                "text": "Don't recommend channel",
                "icon_type": "REMOVE",
                "endpoint": {
                    "type": "NavigationEndpoint",
                    "payload": {
                        "feedbackToken": "AB9zfpJb4RsHPc0mEUyzsb4X9fy2c5fjdMf7Za4vGd-osYRTdEMVS16SzooeBKxutICVmvMGe4oVDqudO22hAWfHCBGrrVuSUhy9gm55bz4eDO39gjo5nG7dmuge_55HPb3FzWoljxLGjpX7IyUA_YfhBlK9HpqIjtIwZjUkep3cZzStXsgzhqY",
                        "uiActions": {
                            "hideEnclosingContainer": true
                        },
                        "actions": [
                            {
                                "clickTrackingParams": "CJwEEPLPAxgOIhMIj8Opjvm8hAMV60Z6BR2bygQ7",
                                "replaceEnclosingAction": {
                                    "item": {
                                        "notificationMultiActionRenderer": {
                                            "responseText": {
                                                "runs": [
                                                    {
                                                        "text": "We won't recommend videos from this channel to you again"
                                                    }
                                                ],
                                                "accessibility": {
                                                    "accessibilityData": {
                                                        "label": "We won't recommend videos from this channel to you again"
                                                    }
                                                }
                                            },
                                            "buttons": [
                                                {
                                                    "buttonRenderer": {
                                                        "style": "STYLE_BLUE_TEXT",
                                                        "text": {
                                                            "simpleText": "Undo"
                                                        },
                                                        "serviceEndpoint": {
                                                            "clickTrackingParams": "CJ8EEPBbGAAiEwiPw6mO-byEAxXrRnoFHZvKBDs=",
                                                            "commandMetadata": {
                                                                "webCommandMetadata": {
                                                                    "sendPost": true,
                                                                    "apiUrl": "/youtubei/v1/feedback"
                                                                }
                                                            },
                                                            "undoFeedbackEndpoint": {
                                                                "undoToken": "AB9zfpKWO2zSR012fI3tStv9TMSidLe8X-wf1rus2iDPzBihlqqtt0HHDl8fe_uzQsDH35a7IDgi1UHHiXcUK_Lkum1l7AAwE1rEjFOqRuLQ0gJgQN_yoD_jJ6Nv3X9nRlwRTaedXthLFrWLnON05ZHWgY9-Mb15dT21QOCQELTUjyDlpoWWDlo",
                                                                "actions": [
                                                                    {
                                                                        "clickTrackingParams": "CJ8EEPBbGAAiEwiPw6mO-byEAxXrRnoFHZvKBDs=",
                                                                        "undoFeedbackAction": {
                                                                            "hack": true
                                                                        }
                                                                    }
                                                                ]
                                                            }
                                                        },
                                                        "trackingParams": "CJ8EEPBbGAAiEwiPw6mO-byEAxXrRnoFHZvKBDs="
                                                    }
                                                },
                                                {
                                                    "buttonRenderer": {
                                                        "style": "STYLE_BLUE_TEXT",
                                                        "text": {
                                                            "simpleText": "Learn more"
                                                        },
                                                        "trackingParams": "CJ4EEPBbGAEiEwiPw6mO-byEAxXrRnoFHZvKBDs=",
                                                        "command": {
                                                            "clickTrackingParams": "CJ4EEPBbGAEiEwiPw6mO-byEAxXrRnoFHZvKBDs=",
                                                            "commandMetadata": {
                                                                "webCommandMetadata": {
                                                                    "url": "//support.google.com/youtube/answer/6342839?hl=en",
                                                                    "webPageType": "WEB_PAGE_TYPE_UNKNOWN",
                                                                    "rootVe": 83769
                                                                }
                                                            },
                                                            "urlEndpoint": {
                                                                "url": "//support.google.com/youtube/answer/6342839?hl=en",
                                                                "target": "TARGET_NEW_WINDOW"
                                                            }
                                                        }
                                                    }
                                                }
                                            ],
                                            "trackingParams": "CJ0EEKW8ASITCI_DqY75vIQDFetGegUdm8oEOw==",
                                            "dismissalViewStyle": "DISMISSAL_VIEW_STYLE_COMPACT_TALL"
                                        }
                                    }
                                }
                            }
                        ]
                    },
                    "metadata": {
                        "api_url": "feedback",
                        "send_post": true
                    }
                }
            },
            {
                "type": "MenuServiceItem",
                "text": "Report",
                "icon_type": "FLAG",
                "endpoint": {
                    "type": "NavigationEndpoint",
                    "payload": {
                        "params": "EgtKb2lRTmtSY2ptNEABWAFwAXgC2AEA6AEA"
                    },
                    "metadata": {
                        "api_url": "flag/get_form",
                        "send_post": true
                    }
                }
            }
        ],
        "top_level_buttons": [],
        "label": "Action menu"
    }
}

Expected behavior

I want to have valid information from the video.

Current behavior

Hidden video information is invalid.

Version

Default

Anything else?

No response

Checklist

LuanRT commented 6 months ago

Hi! That's a livestream, so it does make sense for the duration to be N/A.