Repository: streamlink/streamlink

Issue:
plugins.youtube: latest stable is unable to parse https://www.youtube.com/channel/<channel_id>/live
### Checklist

- [X] This is a plugin issue and not a different kind of issue
- [X] [I have read the contribution guidelines](https://github.com/streamlink/streamlink/blob/master/CONTRIBUTING.md#contributing-to-streamlink)
- [X] [I have checked the list of open and recently closed plugin issues](https://github.com/streamlink/streamlink/issues?q=is%3Aissue+label%3A%22plugin+issue%22)
- [X] [I have checked the commit log of the master branch](https://github.com/streamlink/streamlink/commits/master)

### Streamlink version

Latest stable release

### Description

- issue:
  - the latest stable release (`3.0.3`) is unable to parse Youtube URLs of format `https://www.youtube.com/channel/<channel_id>/live`,  whereas the previous release (`3.0.2`) was able to do so;
  - however, removal of the `/live` suffix (`https://www.youtube.com/channel/<channel_id>`) fixes the issue;
  - in addition, the issue **does not** apply to any of the following formats:
    - `https://www.youtube.com/c/todonoticias`
    - `https://www.youtube.com/c/todonoticias/live`
    - `https://www.youtube.com/user/c5n`
    - `https://www.youtube.com/user/c5n/live`

- example of URLs that cause the issue:
  - `https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live`:
     ```
     streamlink -l debug https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live
     [cli][debug] OS:         Linux-5.10.0-9-amd64-x86_64-with-glibc2.31
     [cli][debug] Python:     3.9.2
     [cli][debug] Streamlink: 3.0.3
     [cli][debug] Requests(2.26.0), Socks(1.7.1), Websocket(1.2.1)
     [cli][debug] Arguments:
     [cli][debug]  url=https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live
     [cli][debug]  --loglevel=debug
     [cli][info] Found matching plugin youtube for URL https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live
     error: Unable to validate result: Unable to validate key 'microformat': Key 'playerMicroformatRenderer' not found in {'microformatDataRenderer': {'urlCanonical': 'https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live', 'title': 'Drum & Bass Non-Stop Bangers - To Vibe/Dance To', 'description': "Welcome to our new 'Drum & Bass Non-Stop Bangers' playlist. We’ll be rolling out the finest Hospital selections continuously so you can get your 174BPM fix w...", 'thumbnail': {'thumbnails': [{'url': 'https://i.ytimg.com/vi/jdkegu3Zexg/maxresdefault_live.jpg', 'width': 1280, 'height': 720}]}, 'siteName': 'YouTube', 'appName': 'YouTube', 'androidPackage': 'com.google.android.youtube', 'iosAppStoreId': '544007664', 'iosAppArguments': 'https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live', 'ogType': 'video.other', 'urlApplinksWeb': 'https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live?feature=applinks', 'urlApplinksIos': 'vnd.youtube://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live?feature=applinks', 'urlApplinksAndroid': 'vnd.youtube://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live?feature=applinks', 'urlTwitterIos': 'vnd.youtube://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live?feature=twitter-deep-link', 'urlTwitterAndroid': 'vnd.youtube://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live?feature=twitter-deep-link', 'twitterCardType': 'player', 'twitterSiteHandle': '@YouTube', 'schemaDotOrgType': 'http://schema.org/VideoObject', 'noindex': True, 'unlisted': False, 'paid': False, 'familySafe': True, 'tags': ['hospital Records', 'Drum & Bass', 'dnb', 'liquid dnb', 'liquid funk', 'liquid drum and bass', 'drum and bass', 'liquid', 'D&B', 'Hospital Records', 'Jungle', 'Hospitality', 'Electronic', 'Junglist', 'Hospitality DNB', 'playlist', 'radio stream', '24/7 radio stream', 'mix', 'continuous mix', 'drum and bass playlist', 'Bangers', 'Rave', 'Dance', 'Drum & Bass Non-Stop Bangers', 'Non Stop Music', 'Non Stop Bangers', 'Non Stop', '24/7 music', '24/7 drum and bass', 'Drum n Bass', 'DnB', 'D+B', 'Electronic Stream', 'DnB Stream', 'D&B Stream', 'D+B Stream', 'Stream'], 'availableCountries': ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW'], 'pageOwnerDetails': {'name': 'Hospital Records', 'externalChannelId': 'UCw49uOTAJjGUdoAeUcp7tOg', 'youtubeProfileUrl': 'http://www.youtube.com/user/HospitalRecords'}, 'videoDetails': {'externalVideoId': 'jdkegu3Zexg'}, 'embedDetails': {'iframeUrl': 'https://www.youtube.com/embed/live_stream?channel=UCw49uOTAJjGUdoAeUcp7tOg', 'flashUrl': 'http://www.youtube.com/v/jdkegu3Zexg?version=3&autohide=1', 'flashSecureUrl': 'https://www.youtube.com/v/jdkegu3Zexg?version=3&autohide=1', 'width': 480, 'height': 360}, 'linkAlternates': [{'hrefUrl': 'https://m.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live'}, {'hrefUrl': 'android-app://com.google.android.youtube/http/youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live'}, {'hrefUrl': 'ios-app://544007664/http/youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live'}, {'hrefUrl': 'https://www.youtube.com/oembed?format=json&url=https%3A%2F%2Fwww.youtube.com%2Fchannel%2FUCw49uOTAJjGUdoAeUcp7tOg%2Flive', 'title': 'Drum & Bass Non-Stop Bangers - To Vibe/Dance To', 'alternateType': 'application/json+oembed'}, {'hrefUrl': 'https://www.youtube.com/oembed?format=xml&url=https%3A%2F%2Fwww.youtube.com%2Fchannel%2FUCw49uOTAJjGUdoAeUcp7tOg%2Flive', 'title': 'Drum & Bass Non-Stop Bangers - To Vibe/Dance To', 'alternateType': 'text/xml+oembed'}], 'viewCount': '153114', 'publishDate': '1969-12-31', 'category': 'Music', 'uploadDate': '1969-12-31'}}
     ```
  - `https://youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live`:
     ```
     streamlink -l debug https://youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live
     [cli][debug] OS:         Linux-5.10.0-9-amd64-x86_64-with-glibc2.31
     [cli][debug] Python:     3.9.2
     [cli][debug] Streamlink: 3.0.3
     [cli][debug] Requests(2.26.0), Socks(1.7.1), Websocket(1.2.1)
     [cli][debug] Arguments:
     [cli][debug]  url=https://youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live
     [cli][debug]  --loglevel=debug
     [cli][info] Found matching plugin youtube for URL https://youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live
     error: Unable to validate result: Unable to validate key 'microformat': Key 'playerMicroformatRenderer' not found in {'microformatDataRenderer': {'urlCanonical': 'https://www.youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live', 'title': 'TN EN VIVO | Mirá la programación de @Todo Noticias durante las 24 horas del día', 'description': 'SUSCRIBITE A NUESTRO CANAL → https://bit.ly/365OTiS TN - TODO NOTICIAS EN VIVO LAS 24 HS El canal líder de noticias de la Argentina. ★ Mirá más contenid...', 'thumbnail': {'thumbnails': [{'url': 'https://i.ytimg.com/vi/wHn1_QVoXGM/maxresdefault_live.jpg', 'width': 1280, 'height': 720}]}, 'siteName': 'YouTube', 'appName': 'YouTube', 'androidPackage': 'com.google.android.youtube', 'iosAppStoreId': '544007664', 'iosAppArguments': 'https://www.youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live', 'ogType': 'video.other', 'urlApplinksWeb': 'https://www.youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live?feature=applinks', 'urlApplinksIos': 'vnd.youtube://www.youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live?feature=applinks', 'urlApplinksAndroid': 'vnd.youtube://www.youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live?feature=applinks', 'urlTwitterIos': 'vnd.youtube://www.youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live?feature=twitter-deep-link', 'urlTwitterAndroid': 'vnd.youtube://www.youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live?feature=twitter-deep-link', 'twitterCardType': 'player', 'twitterSiteHandle': '@YouTube', 'schemaDotOrgType': 'http://schema.org/VideoObject', 'noindex': True, 'unlisted': False, 'paid': False, 'familySafe': True, 'tags': ['noticia ultimo momento', 'breaking news', 'TN', 'Todo Noticias Argentina', 'todo noticias vivo', 'tn en vivo', 'tn en vivo online', 'tn noticias en vivo', 'tn en vivo todo noticias', 'la nacion', 'c5n en vivo', 'a24 en vivo', 'canal 26 en vivo', 'programas de tn', 'noticias en vivo', 'en vivo', 'canales de noticias', 'cronica tv en vivo', 'noticias en vivo argentina', 'tnt en vivo', 'telefe en vivo', 'canales en vivo', 'noticiero en vivo', 'tv en vivo', 'canales en vivo argentina', 'america tv en vivo', 'canal 7 en vivo'], 'availableCountries': ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW'], 'pageOwnerDetails': {'name': 'Todo Noticias', 'externalChannelId': 'UCj6PcyLvpnIRT_2W_mwa9Aw', 'youtubeProfileUrl': 'http://www.youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw'}, 'videoDetails': {'externalVideoId': 'wHn1_QVoXGM'}, 'embedDetails': {'iframeUrl': 'https://www.youtube.com/embed/live_stream?channel=UCj6PcyLvpnIRT_2W_mwa9Aw', 'flashUrl': 'http://www.youtube.com/v/wHn1_QVoXGM?version=3&autohide=1', 'flashSecureUrl': 'https://www.youtube.com/v/wHn1_QVoXGM?version=3&autohide=1', 'width': 480, 'height': 360}, 'linkAlternates': [{'hrefUrl': 'https://m.youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live'}, {'hrefUrl': 'android-app://com.google.android.youtube/http/youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live'}, {'hrefUrl': 'ios-app://544007664/http/youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live'}, {'hrefUrl': 'https://www.youtube.com/oembed?format=json&url=https%3A%2F%2Fwww.youtube.com%2Fchannel%2FUCj6PcyLvpnIRT_2W_mwa9Aw%2Flive', 'title': 'TN EN VIVO | Mirá la programación de  @Todo Noticias  durante las 24 horas del día', 'alternateType': 'application/json+oembed'}, {'hrefUrl': 'https://www.youtube.com/oembed?format=xml&url=https%3A%2F%2Fwww.youtube.com%2Fchannel%2FUCj6PcyLvpnIRT_2W_mwa9Aw%2Flive', 'title': 'TN EN VIVO | Mirá la programación de  @Todo Noticias  durante las 24 horas del día', 'alternateType': 'text/xml+oembed'}], 'viewCount': '384547261', 'publishDate': '1969-12-31', 'category': 'News & Politics', 'uploadDate': '1969-12-31'}}
     ```

- to reproduce:
  1. `pip3 install --upgrade streamlink==3.0.3`
  2. `streamlink https://youtube.com/channel/UCj6PcyLvpnIRT_2W_mwa9Aw/live`

### Debug log

```text
streamlink -l debug https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live
[cli][debug] OS:         Linux-5.10.0-9-amd64-x86_64-with-glibc2.31
[cli][debug] Python:     3.9.2
[cli][debug] Streamlink: 3.0.3
[cli][debug] Requests(2.26.0), Socks(1.7.1), Websocket(1.2.1)
[cli][debug] Arguments:
[cli][debug]  url=https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live
[cli][debug]  --loglevel=debug
[cli][info] Found matching plugin youtube for URL https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live
error: Unable to validate result: Unable to validate key 'microformat': Key 'playerMicroformatRenderer' not found in {'microformatDataRenderer': {'urlCanonical': 'https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live', 'title': 'Drum & Bass Non-Stop Bangers - To Vibe/Dance To', 'description': "Welcome to our new 'Drum & Bass Non-Stop Bangers' playlist. We’ll be rolling out the finest Hospital selections continuously so you can get your 174BPM fix w...", 'thumbnail': {'thumbnails': [{'url': 'https://i.ytimg.com/vi/jdkegu3Zexg/maxresdefault_live.jpg', 'width': 1280, 'height': 720}]}, 'siteName': 'YouTube', 'appName': 'YouTube', 'androidPackage': 'com.google.android.youtube', 'iosAppStoreId': '544007664', 'iosAppArguments': 'https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live', 'ogType': 'video.other', 'urlApplinksWeb': 'https://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live?feature=applinks', 'urlApplinksIos': 'vnd.youtube://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live?feature=applinks', 'urlApplinksAndroid': 'vnd.youtube://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live?feature=applinks', 'urlTwitterIos': 'vnd.youtube://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live?feature=twitter-deep-link', 'urlTwitterAndroid': 'vnd.youtube://www.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live?feature=twitter-deep-link', 'twitterCardType': 'player', 'twitterSiteHandle': '@YouTube', 'schemaDotOrgType': 'http://schema.org/VideoObject', 'noindex': True, 'unlisted': False, 'paid': False, 'familySafe': True, 'tags': ['hospital Records', 'Drum & Bass', 'dnb', 'liquid dnb', 'liquid funk', 'liquid drum and bass', 'drum and bass', 'liquid', 'D&B', 'Hospital Records', 'Jungle', 'Hospitality', 'Electronic', 'Junglist', 'Hospitality DNB', 'playlist', 'radio stream', '24/7 radio stream', 'mix', 'continuous mix', 'drum and bass playlist', 'Bangers', 'Rave', 'Dance', 'Drum & Bass Non-Stop Bangers', 'Non Stop Music', 'Non Stop Bangers', 'Non Stop', '24/7 music', '24/7 drum and bass', 'Drum n Bass', 'DnB', 'D+B', 'Electronic Stream', 'DnB Stream', 'D&B Stream', 'D+B Stream', 'Stream'], 'availableCountries': ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW'], 'pageOwnerDetails': {'name': 'Hospital Records', 'externalChannelId': 'UCw49uOTAJjGUdoAeUcp7tOg', 'youtubeProfileUrl': 'http://www.youtube.com/user/HospitalRecords'}, 'videoDetails': {'externalVideoId': 'jdkegu3Zexg'}, 'embedDetails': {'iframeUrl': 'https://www.youtube.com/embed/live_stream?channel=UCw49uOTAJjGUdoAeUcp7tOg', 'flashUrl': 'http://www.youtube.com/v/jdkegu3Zexg?version=3&autohide=1', 'flashSecureUrl': 'https://www.youtube.com/v/jdkegu3Zexg?version=3&autohide=1', 'width': 480, 'height': 360}, 'linkAlternates': [{'hrefUrl': 'https://m.youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live'}, {'hrefUrl': 'android-app://com.google.android.youtube/http/youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live'}, {'hrefUrl': 'ios-app://544007664/http/youtube.com/channel/UCw49uOTAJjGUdoAeUcp7tOg/live'}, {'hrefUrl': 'https://www.youtube.com/oembed?format=json&url=https%3A%2F%2Fwww.youtube.com%2Fchannel%2FUCw49uOTAJjGUdoAeUcp7tOg%2Flive', 'title': 'Drum & Bass Non-Stop Bangers - To Vibe/Dance To', 'alternateType': 'application/json+oembed'}, {'hrefUrl': 'https://www.youtube.com/oembed?format=xml&url=https%3A%2F%2Fwww.youtube.com%2Fchannel%2FUCw49uOTAJjGUdoAeUcp7tOg%2Flive', 'title': 'Drum & Bass Non-Stop Bangers - To Vibe/Dance To', 'alternateType': 'text/xml+oembed'}], 'viewCount': '153133', 'publishDate': '1969-12-31', 'category': 'Music', 'uploadDate': '1969-12-31'}}
```



Discussion:

Resolving patch:
diff --git a/src/streamlink/plugins/youtube.py b/src/streamlink/plugins/youtube.py
--- a/src/streamlink/plugins/youtube.py
+++ b/src/streamlink/plugins/youtube.py
@@ -146,16 +146,26 @@ def _schema_videodetails(cls, data):
                     validate.optional("isLowLatencyLiveStream"): validate.transform(bool),
                     validate.optional("isPrivate"): validate.transform(bool),
                 },
-                "microformat": {
-                    "playerMicroformatRenderer": {
+                "microformat": validate.all(
+                    validate.any(
+                        validate.all(
+                            {"playerMicroformatRenderer": dict},
+                            validate.get("playerMicroformatRenderer")
+                        ),
+                        validate.all(
+                            {"microformatDataRenderer": dict},
+                            validate.get("microformatDataRenderer")
+                        )
+                    ),
+                    {
                         "category": str
                     }
-                }
+                )
             },
             validate.union_get(
                 ("videoDetails", "videoId"),
                 ("videoDetails", "author"),
-                ("microformat", "playerMicroformatRenderer", "category"),
+                ("microformat", "category"),
                 ("videoDetails", "title"),
                 ("videoDetails", "isLive")
             )


Test patch: