Repository: ytdl-org/youtube-dl

Issue:
[vvvvid] Support for "season" name extraction
## Checklist

- [x] I'm reporting a site feature request
- [x] I've verified that I'm running youtube-dl version 2020.12.31
- [x] I've checked that all provided URLs are alive and playable in a browser
- [x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
- [x] I've searched the bugtracker for similar issues including closed ones

## Verbose log

```
$ youtube-dl -v --get-filename -o "%(season)s - %(episode)s" https://www.vvvvid.it/show/404/one-punch-man
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '--get-filename', '-o', '%(season)s - %(episode)s', 'https://www.vvvvid.it/show/404/one-punch-man']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2020.12.31
[debug] Proxy map: {}
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - L’uomo più forte
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - Il cyborg solitario
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - L’ossessione dello scienziato
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - Il ninja dei giorni nostri
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - L’insegnante definitivo
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - La città del terrore
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - L’allievo supremo
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - Il re degli abissi
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - La giustizia inflessibile
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - Una crisi senza precedenti
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - Il signore dell’universo
[debug] Default format spec: bestvideo+bestaudio/best
Season 1 - L’eroe più forte
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - L’uomo più forte
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - Il cyborg solitario
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - L'ossessione dello scienziato
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - Il ninja dei giorni nostri
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - L’insegnante definitivo
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - La città del terrore
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - L’allievo supremo
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - Il re degli abissi
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - La giustizia inflessibile
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - Una crisi senza precedenti
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - Il signore dell’universo
[debug] Default format spec: bestvideo+bestaudio/best
Season 2 - L’eroe più forte
WARNING: Failed to download m3u8 information: HTTP Error 404: Not Found
WARNING: Unable to download f4m manifest: HTTP Error 404: Not Found
WARNING: Failed to download MPD manifest: HTTP Error 404: Not Found
[debug] Default format spec: bestvideo+bestaudio/best
Season 3 - Trailer
[debug] Default format spec: bestvideo+bestaudio/best
Season 3 - Street re-view by Riccardo Greco
```

## Description

Expected output:
```
VERSIONE IN ITALIANO - L’uomo più forte
VERSIONE IN ITALIANO - Il cyborg solitario
...
VERSIONE IN GIAPPONESE - L’uomo più forte
VERSIONE IN GIAPPONESE - Il cyborg solitario
...
EXTRA - Trailer
EXTRA - Street re-view by Riccardo Greco
```



Discussion:

Resolving patch:
diff --git a/youtube_dl/extractor/vvvvid.py b/youtube_dl/extractor/vvvvid.py
--- a/youtube_dl/extractor/vvvvid.py
+++ b/youtube_dl/extractor/vvvvid.py
@@ -247,9 +247,13 @@ def _real_extract(self, url):
         show_info = self._download_info(
             show_id, 'info/', show_title, fatal=False)
 
+        if not show_title:
+            base_url += "/title"
+
         entries = []
         for season in (seasons or []):
             episodes = season.get('episodes') or []
+            playlist_title = season.get('name') or show_info.get('title')
             for episode in episodes:
                 if episode.get('playable') is False:
                     continue
@@ -259,12 +263,13 @@ def _real_extract(self, url):
                     continue
                 info = self._extract_common_video_info(episode)
                 info.update({
-                    '_type': 'url',
+                    '_type': 'url_transparent',
                     'ie_key': VVVVIDIE.ie_key(),
                     'url': '/'.join([base_url, season_id, video_id]),
                     'title': episode.get('title'),
                     'description': episode.get('description'),
                     'season_id': season_id,
+                    'playlist_title': playlist_title,
                 })
                 entries.append(info)
 


Test patch: