Repository: yt-dlp
Issue: [nebula] Support playlist downloads
Labels: site-enhancement,triage

### DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

- [X] I understand that I will be **blocked** if I *intentionally* remove or skip any mandatory\* field

### Checklist

- [X] I'm requesting a site-specific feature
- [X] I've verified that I have **updated yt-dlp to nightly or master** ([update instructions](https://github.com/yt-dlp/yt-dlp#update-channels))
- [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
- [X] I've searched [known issues](https://github.com/yt-dlp/yt-dlp/issues/3766) and 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

Global (Europe at least)

### Example URLs

https://nebula.tv/jetlag?tab=playlists

### Provide a description that is worded well enough to be understood

Hi there !

On nebula, some shows are split into seasons using the playlist feature. Playlist can be queried in the nebula API using something like the following : 

- Get all playlists from https://content.api.nebula.app/content/CHANNEL_NAME/?include=lessons (yt_dlp already calls that). The returned json contains a ['playlists'] key that can be used to get all the information needed about available playlists 

```json
{
   "id":"video_channel:9cea6296-223e-4c7e-a245-d96db75de32f",
   "type":"video_channel",
   "slug":"jetlag",
   ...
   "title":"Jet Lag: The Game",
   "published_at":"2022-05-25T17:53:15Z",
   "description":"We play games where the world is our board.",
   ...
   "playlists":[
      {
         "id":"video_playlist:f5316a93-a773-4bd8-9621-67f091fac8cd",
         "type":"video_playlist",
         "slug":"jetlag-season8weracedfromamericasnorthernmosttosouthernmosttown",
         "title":"Season 8 — We Raced From America’s Northernmost to Southernmost Town"
      },
      {
         "id":"video_playlist:b431b143-9ccf-4011-87d0-8e08830f9ba8",
         "type":"video_playlist",
         "slug":"jetlag-season1connect4acrossamerica",
         "title":"Season 1 — Connect 4 Across America"
      },
      {
         "id":"video_playlist:5cb7ee38-b2b8-4f48-a2fe-d1890973cd4e",
         "type":"video_playlist",
         "slug":"jetlag-season2circumnavigation",
         "title":"Season 2 — Circumnavigation"
      },
      {
         "id":"video_playlist:554a7d6e-1720-4f63-93d4-0499f805c344",
         "type":"video_playlist",
         "slug":"jetlag-season3weplayedtagacrosseurope",
         "title":"Season 3 — We Played Tag Across Europe"
      },
      {
         "id":"video_playlist:1a8cabdd-6771-4588-af52-701cb19d53d6",
         "type":"video_playlist",
         "slug":"jetlag-season4battle4america",
         "title":"Season 4 — Battle 4 America"
      },
      {
         "id":"video_playlist:ef48e0a0-35b3-40d2-9982-e8825ebf4c8f",
         "type":"video_playlist",
         "slug":"jetlag-season5racetotheendoftheworld",
         "title":"Season 5 — Race to the End of the World"
      },
      {
         "id":"video_playlist:9a174855-d592-4556-9179-883f3a342ef6",
         "type":"video_playlist",
         "slug":"jetlag-season6capturetheflag",
         "title":"Season 6 — Capture the Flag"
      },
      {
         "id":"video_playlist:706760c0-eca1-4600-9dcc-5b8634a1abdf",
         "type":"video_playlist",
         "slug":"jetlag-season7weplayedtagacrosseuropeagain",
         "title":"Season 7 — We Played Tag Across Europe (again)"
      }
   ],
   ...
}
```

You can then request playlist videos using the following link : https://content.api.nebula.app/video_playlists/video_playlist:PLAYLIST_ID/video_episodes/
For example, requesting https://content.api.nebula.app/video_playlists/video_playlist:f5316a93-a773-4bd8-9621-67f091fac8cd/video_episodes/ would give you the following:

``` json
{
   "next":null,
   "previous":null,
   "results":[
      {
         "id":"video_episode:c929b040-c8ce-450c-bf8d-408c9e27e6d4",
         "type":"video_episode",
         "slug":"jetlag-season-eight-trailer",
         "title":"Jet Lag Season Eight — Official Trailer",
         "description":"Premieres December 13.\r\n\r\nDiscuss the trailer on [Reddit.](https://www.reddit.com/r/Nebula/comments/18c6gcj/jet_lag_season_eight_official_trailer/)\r\n\r\nWatch new episodes a week early only on Nebula at https://nebula.tv/jetlag",
         "short_description":"Premieres December 13 on Nebula.",
         "duration":140,
         "duration_to_complete":130,
         "published_at":"2023-12-06T15:30:08Z",
         "channel_id":"video_channel:9cea6296-223e-4c7e-a245-d96db75de32f",
         "channel_slug":"jetlag",
         "channel_slugs":[
            "jetlag"
         ],
         "channel_title":"Jet Lag: The Game",
         "category_slugs":[
            "entertainment",
            "travel"
         ],
         ...
      },
      {
         "id":"video_episode:dbcc8c86-4d28-4023-98f9-8042503f5227",
         "type":"video_episode",
         "slug":"jetlag-we-raced-from-americas-northernmost-to-southernmost-town",
         "title":"We Raced From America’s Northernmost to Southernmost Town",
         "description":"Discuss the season premiere on [Reddit.](https://www.reddit.com/r/Nebula/comments/18hjcm9/jet_lag_season_8_begins_now_we_raced_from/)\n\nListen to The Layover: https://nebula.tv/thelayover\n\nOur other channels:\nWendover Productions - https://nebula.tv/wendover\nHalf as Interesting - https://nebula.tv/hai\n\nFollow us on Twitter: http://twitter.com/wendoverpro\n\nCreated by Adam Chase, Sam Denby, and Ben Doyle\n\nFeaturing Sam Denby, Michelle Khare, Adam Chase, Ben Doyle\n\nEditing by Adam Chase, Ben Doyle, Jack MacColl, , Tyson Kroening, Henry Ariza\n\nExecutive Producer Sam Denby\n\nCo-Executive Producer Graham Haerther\n\nSupervising Producer Tyson Kroening\n\nMotion Graphics by Lili Pereira, João Pessegueiro,  Elise Heersink, Sara Stoltman, Mikaila Blackburn, Dom Burgess,  Derek Brown\n\nAudio by Manni Simon, Donovan Bullen\n\nArtwork by Simon Buckmaster\n\nAdditional Game Design by Amy Muller",
         "short_description":"We Raced From America’s Northernmost to Southernmost Town",
         "duration":1368,
         "duration_to_complete":1341,
         "published_at":"2023-12-13T15:30:08Z",
         "channel_id":"video_channel:9cea6296-223e-4c7e-a245-d96db75de32f",
         "channel_slug":"jetlag",
         "channel_slugs":[
            "jetlag"
         ],
         "channel_title":"Jet Lag: The Game",
         "category_slugs":[
            "entertainment",
            "travel"
         ],
         ...
      },
      {
         "id":"video_episode:6fe5ab3f-548b-48be-8391-573967149deb",
         "type":"video_episode",
         "slug":"jetlag-ep-2-we-raced-from-americas-northernmost-to-southernmost-town",
         "title":"Ep 2 — We Raced From America’s Northernmost to Southernmost Town",
         "description":"Discuss this episode on [Reddit.](https://www.reddit.com/r/Nebula/comments/18mx9lt/jet_lag_we_raced_from_americas_northernmost_to/)\n\nListen to The Layover: https://nebula.tv/thelayover\n\nOur other channels:\nWendover Productions - https://nebula.tv/wendover\nHalf as Interesting - https://nebula.tv/hai\n\nFollow us on Twitter: http://twitter.com/wendoverpro\n\nCreated by Adam Chase, Sam Denby, and Ben Doyle\n\nFeaturing Sam Denby, Michelle Khare, Adam Chase, Ben Doyle\n\nEditing by Adam Chase, Ben Doyle, Jack MacColl, , Tyson Kroening, Henry Ariza\n\nExecutive Producer Sam Denby\n\nCo-Executive Producer Graham Haerther\n\nSupervising Producer Tyson Kroening\n\nMotion Graphics by Lili Pereira, João Pessegueiro,  Elise Heersink, Sara Stoltman, Mikaila Blackburn, Dom Burgess,  Derek Brown\n\nAudio by Manni Simon, Donovan Bullen\n\nArtwork by Simon Buckmaster\n\nAdditional Game Design by Amy Muller",
         "short_description":"Ep 2 — We Raced From America’s Northernmost to Southernmost Town",
         "duration":1987,
         "duration_to_complete":1948,
         "published_at":"2023-12-20T15:30:02Z",
         "channel_id":"video_channel:9cea6296-223e-4c7e-a245-d96db75de32f",
         "channel_slug":"jetlag",
         "channel_slugs":[
            "jetlag"
         ],
         "channel_title":"Jet Lag: The Game",
         "category_slugs":[
            "entertainment",
            "travel"
         ],
         ...
      },
      {
         "id":"video_episode:591eba25-b820-405a-a463-291b633772bd",
         "type":"video_episode",
         "slug":"jetlag-ep-3-we-raced-from-americas-northernmost-to-southernmost-town",
         "title":"Ep 3 — We Raced From America’s Northernmost to Southernmost Town",
         "description":"Discuss this episode on [Reddit.](https://www.reddit.com/r/Nebula/comments/18s3a6p/jet_lag_we_raced_from_americas_northernmost_to/)\n\nListen to The Layover: https://nebula.tv/thelayover\n\nOur other channels:\nWendover Productions - https://nebula.tv/wendover\nHalf as Interesting - https://nebula.tv/hai\n\nFollow us on Twitter: http://twitter.com/wendoverpro\n\nCreated by Adam Chase, Sam Denby, and Ben Doyle\n\nFeaturing Sam Denby, Michelle Khare, Adam Chase, Ben Doyle\n\nEditing by Adam Chase, Ben Doyle, Jack MacColl, , Tyson Kroening, Henry Ariza\n\nExecutive Producer Sam Denby\n\nCo-Executive Producer Graham Haerther\n\nSupervising Producer Tyson Kroening\n\nMotion Graphics by Lili Pereira, João Pessegueiro,  Elise Heersink, Sara Stoltman, Mikaila Blackburn, Dom Burgess,  Derek Brown\n\nAudio by Manni Simon, Donovan Bullen\n\nArtwork by Simon Buckmaster\n\nAdditional Game Design by Amy Muller",
         "short_description":"Ep 3 — We Raced From America’s Northernmost to Southernmost Town",
         "duration":2474,
         "duration_to_complete":2425,
         "published_at":"2023-12-27T15:30:08Z",
         "channel_id":"video_channel:9cea6296-223e-4c7e-a245-d96db75de32f",
         "channel_slug":"jetlag",
         "channel_slugs":[
            "jetlag"
         ],
         "channel_title":"Jet Lag: The Game",
         "category_slugs":[
            "entertainment",
            "travel"
         ],
         ...
      },
      {
         "id":"video_episode:5c7b25e7-effa-41da-a225-2dd7f70bfa69",
         "type":"video_episode",
         "slug":"jetlag-ep-4-we-raced-from-americas-northernmost-to-southernmost-town",
         "title":"Ep 4 — We Raced From America’s Northernmost to Southernmost Town",
         "description":"Discuss this episode on [Reddit.](https://www.reddit.com/r/Nebula/comments/18xm1m0/jet_lag_we_raced_from_americas_northernmost_to/)\n\nListen to The Layover: https://nebula.tv/thelayover\n\nOur other channels:\nWendover Productions - https://nebula.tv/wendover\nHalf as Interesting - https://nebula.tv/hai\n\nFollow us on Twitter: http://twitter.com/wendoverpro\n\nCreated by Adam Chase, Sam Denby, and Ben Doyle\n\nFeaturing Sam Denby, Michelle Khare, Adam Chase, Ben Doyle\n\nEditing by Adam Chase, Ben Doyle, Jack MacColl, , Tyson Kroening, Henry Ariza\n\nExecutive Producer Sam Denby\n\nCo-Executive Producer Graham Haerther\n\nSupervising Producer Tyson Kroening\n\nMotion Graphics by Lili Pereira, João Pessegueiro,  Elise Heersink, Sara Stoltman, Mikaila Blackburn, Dom Burgess,  Derek Brown\n\nAudio by Manni Simon, Donovan Bullen\n\nArtwork by Simon Buckmaster\n\nAdditional Game Design by Amy Muller",
         "short_description":"Ep 4 — We Raced From America’s Northernmost to Southernmost Town",
         "duration":2276,
         "duration_to_complete":2231,
         "published_at":"2024-01-03T15:30:08Z",
         "channel_id":"video_channel:9cea6296-223e-4c7e-a245-d96db75de32f",
         "channel_slug":"jetlag",
         "channel_slugs":[
            "jetlag"
         ],
         "channel_title":"Jet Lag: The Game",
         "category_slugs":[
            "entertainment",
            "travel"
         ],
         ...
      },
      {
         "id":"video_episode:9f8ea5c5-78a6-4c16-aa64-3e6f56d5156d",
         "type":"video_episode",
         "slug":"jetlag-ep-5-we-raced-from-americas-northernmost-to-southernmost-town",
         "title":"Ep 5 — We Raced From America’s Northernmost to Southernmost Town",
         "description":"Discuss this episode on [Reddit.](https://www.reddit.com/r/Nebula/comments/193awvj/jet_lag_we_raced_from_americas_northernmost_to/)\r\n\r\nListen to The Layover: https://nebula.tv/thelayover\r\n\r\nOur other channels:\r\nWendover Productions - https://nebula.tv/wendover\r\nHalf as Interesting - https://nebula.tv/hai\r\n\r\nFollow us on Twitter: http://twitter.com/wendoverpro\r\n\r\nCreated by Adam Chase, Sam Denby, and Ben Doyle\r\n\r\nFeaturing Sam Denby, Michelle Khare, Adam Chase, Ben Doyle\r\n\r\nEditing by Adam Chase, Ben Doyle, Jack MacColl, , Tyson Kroening, Henry Ariza\r\n\r\nExecutive Producer Sam Denby\r\n\r\nCo-Executive Producer Graham Haerther\r\n\r\nSupervising Producer Tyson Kroening\r\n\r\nMotion Graphics by Lili Pereira, João Pessegueiro,  Elise Heersink, Sara Stoltman, Mikaila Blackburn, Dom Burgess,  Derek Brown\r\n\r\nAudio by Manni Simon, Donovan Bullen\r\n\r\nArtwork by Simon Buckmaster\r\n\r\nAdditional Game Design by Amy Muller",
         "short_description":"Ep 5 — We Raced From America’s Northernmost to Southernmost Town",
         "duration":2668,
         "duration_to_complete":2615,
         "published_at":"2024-01-10T15:30:11Z",
         "channel_id":"video_channel:9cea6296-223e-4c7e-a245-d96db75de32f",
         "channel_slug":"jetlag",
         "channel_slugs":[
            "jetlag"
         ],
         "channel_title":"Jet Lag: The Game",
         "category_slugs":[
            "entertainment",
            "travel"
         ],
         ...
   ]
}
```

I'd love to be able to download a specific playlist or all videos from a channel in a playlist folder. However, as far as I know, there is no way to get playlist information in yt-dlp right now on nebula.

### Provide verbose output that clearly demonstrates the problem

- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [ ] If using API, add `'verbose': True` to `YoutubeDL` params instead
- [X] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below

### Complete Verbose Output

```shell
> I don't thing there is yet a command for what I want to do, but here is the output of yt-dlp -vU for reference anyways.

yt-dlp -vU
[debug] Command-line config: ['-vU']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.12.30 from yt-dlp/yt-dlp [f10589e34] (pip)
[debug] Python 3.11.6 (CPython arm64 64bit) - macOS-14.2.1-arm64-arm-64bit (OpenSSL 3.2.0 23 Nov 2023)
[debug] exe versions: ffmpeg 6.0 (setts), ffprobe 6.0, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.47.0, requests-2.31.0, sqlite3-3.44.2, urllib3-2.1.0, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1798 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2023.12.30 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2023.12.30 from yt-dlp/yt-dlp)
```