Repository: yt-dlp/yt-dlp

Issue:
Trovo
### Checklist

- [X] I'm reporting a broken site
- [X] I've verified that I'm running yt-dlp version **2022.06.22.1** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
- [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
- [X] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/ytdl-org/youtube-dl#video-url-contains-an-ampersand-and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)
- [X] I've searched the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues including closed ones. DO NOT post duplicates
- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)
- [X] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and I'm willing to share it if required

### Region

Russia

### Description

worked earlier a week. Now - is not

### Verbose log

```shell
/usr/local/bin/yt-dlp https://trovo.live/s/AntikvarTV/549788541715?vid=ltv-108116395_108116395_387702302134032249
DeprecationWarning: Support for Python version 3.6 has been deprecated and will break in future versions of yt-dlp! Please update to Python 3.7 or above
[Trovo] s: Downloading JSON metadata
ERROR: [Trovo] s: Trovo said: {"ret":10505,"msg":"Data not exist"}; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
```



Discussion:
the verbose log should be run with `--verbose` (eg: `/usr/local/bin/yt-dlp https://trovo.live/s/AntikvarTV/549788541715?vid=ltv-108116395_108116395_387702302134032249 --verbose`)

Also, if you're using Linux, I'd highly recommend switching to `yt-dlp_linux` (or updating your python version)
this is latest win64 version

D:\>yt-dlp.exe --verbose https://trovo.live/s/AntikvarTV/549788541715?vid=ltv-108116395_108116395_387702302134032249
[debug] Command-line config: ['--verbose', 'https://trovo.live/s/AntikvarTV/549788541715?vid=ltv-108116395_108116395_387702302134032249']
[debug] Encodings: locale cp1251, fs utf-8, pref cp1251, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.06.22.1 [a86e01e] (win32_exe)
[debug] Python version 3.8.10 (CPython 64bit) - Windows-10-10.0.19044-SP0
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: avconv -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] Checking exe version: avprobe -bsfs
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.14.1, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] [Trovo] Extracting URL: https://trovo.live/s/AntikvarTV/549788541715?vid=ltv-108116395_108116395_387702302134032249
[Trovo] s: Downloading JSON metadata
ERROR: [Trovo] s: Trovo said: {"ret":10505,"msg":"Data not exist"}; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 647, in extract
  File "yt_dlp\extractor\trovo.py", line 50, in _real_extract
  File "yt_dlp\extractor\trovo.py", line 32, in _call_api
Does it work in version [2022.05.08](https://github.com/yt-dlp/yt-dlp/releases/tag/2022.05.18)?
> Does it work in version [2022.05.08](https://github.com/yt-dlp/yt-dlp/releases/tag/2022.05.18)?

It worked around June 13-14. Stopped working on June 20, doesn't work on the new version either.
Possibly related: https://github.com/ytdl-org/youtube-dl/issues/30909

Resolving patch:
diff --git a/yt_dlp/extractor/trovo.py b/yt_dlp/extractor/trovo.py
--- a/yt_dlp/extractor/trovo.py
+++ b/yt_dlp/extractor/trovo.py
@@ -43,7 +43,27 @@ def _extract_streamer_info(self, data):
 
 
 class TrovoIE(TrovoBaseIE):
-    _VALID_URL = TrovoBaseIE._VALID_URL_BASE + r'(?!(?:clip|video)/)(?P<id>[^/?&#]+)'
+    _VALID_URL = TrovoBaseIE._VALID_URL_BASE + r'(?:s/)?(?!(?:clip|video)/)(?P<id>(?!s/)[^/?&#]+(?![^#]+[?&]vid=))'
+    _TESTS = [{
+        'url': 'https://trovo.live/Exsl',
+        'only_matching': True,
+    }, {
+        'url': 'https://trovo.live/s/SkenonSLive/549759191497',
+        'only_matching': True,
+    }, {
+        'url': 'https://trovo.live/s/zijo987/208251706',
+        'info_dict': {
+            'id': '104125853_104125853_1656439572',
+            'ext': 'flv',
+            'uploader_url': 'https://trovo.live/zijo987',
+            'uploader_id': '104125853',
+            'thumbnail': 'https://livecover.trovo.live/screenshot/73846_104125853_104125853-2022-06-29-04-00-22-852x480.jpg',
+            'uploader': 'zijo987',
+            'title': '💥IGRAMO IGRICE UPADAJTE💥2500/5000 2022-06-28 22:01',
+            'live_status': 'is_live',
+        },
+        'skip': 'May not be live'
+    }]
 
     def _real_extract(self, url):
         username = self._match_id(url)
@@ -71,6 +91,7 @@ def _real_extract(self, url):
                 'format_id': format_id,
                 'height': int_or_none(format_id[:-1]) if format_id else None,
                 'url': play_url,
+                'tbr': stream_info.get('bitrate'),
                 'http_headers': self._HEADERS,
             })
         self._sort_formats(formats)
@@ -87,7 +108,7 @@ def _real_extract(self, url):
 
 
 class TrovoVodIE(TrovoBaseIE):
-    _VALID_URL = TrovoBaseIE._VALID_URL_BASE + r'(?:clip|video)/(?P<id>[^/?&#]+)'
+    _VALID_URL = TrovoBaseIE._VALID_URL_BASE + r'(?:clip|video|s)/(?:[^/]+/\d+[^#]*[?&]vid=)?(?P<id>(?<!/s/)[^/?&#]+)'
     _TESTS = [{
         'url': 'https://trovo.live/clip/lc-5285890818705062210?ltab=videos',
         'params': {'getcomments': True},
@@ -108,9 +129,30 @@ class TrovoVodIE(TrovoBaseIE):
             'uploader_url': 'https://trovo.live/OneTappedYou',
             'thumbnail': r're:^https?://.*\.jpg',
         },
+    }, {
+        'url': 'https://trovo.live/s/SkenonSLive/549759191497?vid=ltv-100829718_100829718_387702301737980280',
+        'info_dict': {
+            'id': 'ltv-100829718_100829718_387702301737980280',
+            'ext': 'mp4',
+            'timestamp': 1654909624,
+            'thumbnail': 'http://vod.trovo.live/1f09baf0vodtransger1301120758/ef9ea3f0387702301737980280/coverBySnapshot/coverBySnapshot_10_0.jpg',
+            'uploader_id': '100829718',
+            'uploader': 'SkenonSLive',
+            'title': 'Trovo u secanju, uz par modova i muzike :)',
+            'uploader_url': 'https://trovo.live/SkenonSLive',
+            'duration': 10830,
+            'view_count': int,
+            'like_count': int,
+            'upload_date': '20220611',
+            'comment_count': int,
+            'categories': ['Minecraft'],
+        }
     }, {
         'url': 'https://trovo.live/video/ltv-100095501_100095501_1609596043',
         'only_matching': True,
+    }, {
+        'url': 'https://trovo.live/s/SkenonSLive/549759191497?foo=bar&vid=ltv-100829718_100829718_387702301737980280',
+        'only_matching': True,
     }]
 
     def _real_extract(self, url):


Test patch: