Repository: yt-dlp
Issue: Add `--use-postprocessor` WHEN stage `before_playlist`
Labels: enhancement,core:post-processor

### 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 feature unrelated to a specific site
- [X] I've looked through the [README](https://github.com/yt-dlp/yt-dlp#readme)
- [X] I've verified that I'm running yt-dlp version **2023.03.04** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
- [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)

### Provide a description that is worded well enough to be understood

i have noticed that there is no stage for `before_playlist` (or `before_playlist_dl`), meaning that you can only do things either with each video downloaded or at the end of a playlist.

for example, because the stages are the same for `--print`:
- you can use `before_dl:` to print something before *every* video
- you can use `playlist:` to print *at the end of a playlist*
- but there is no `before_playlist` that would execute *after the playlist is parsed, but before any video happens*

for example when not using `--quiet` or `--print` yt-dlp prints:
```txt
[youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=somePlaylist
[youtube:tab] somePlaylist: Downloading webpage
[youtube:tab] somePlaylist: Redownloading playlist API JSON with unavailable videos
[download] Downloading playlist: somePlaylistName
[youtube:tab] Playlist somePlaylistName: Downloading 14 items of 14
[download] Downloading item 1 of 14
```

with something like a `before_playlist` things like printing playlist information before a download would be great, instead of having to print it for every video:
```sh
MOCK
$ youtube-dl --simulate --print "before_dl:PARSE_START '%(extractor)s' '%(id)s' %(title)s" --print "after_video:PARSE_END '%(extractor)s' '%(id)s'" --print "before_playlist:PLAYLIST '%(playlist_count)s'" --progress --newline https://www.youtube.com/playlist\?list\=somePlaylist
PLAYLIST '14'
PARSE_END 'youtube' 'someID1'
PARSE_END 'youtube' 'someID2'
PARSE_END 'youtube' 'someID3'
```

because currently you could only do:
```sh
$ youtube-dl --simulate --print "before_dl:PARSE_START '%(extractor)s' '%(id)s' %(title)s" --print "after_video:PARSE_END '%(extractor)s' '%(id)s'" --print "before_dl:PLAYLIST '%(playlist_count)s'" --progress --newline https://www.youtube.com/playlist\?list\=somePlaylist
PLAYLIST '14'
PARSE_END 'youtube' 'someID1'
PLAYLIST '14'
PARSE_END 'youtube' 'someID2'
PLAYLIST '14'
PARSE_END 'youtube' 'someID3'
```

or

```sh
$ youtube-dl --simulate --print "before_dl:PARSE_START '%(extractor)s' '%(id)s' %(title)s" --print "after_video:PARSE_END '%(extractor)s' '%(id)s'" --print "playlist:PLAYLIST '%(playlist_count)s'" --progress --newline https://www.youtube.com/playlist\?list\=somePlaylist
PARSE_END 'youtube' 'someID1'
PARSE_END 'youtube' 'someID2'
PARSE_END 'youtube' 'someID3'
PLAYLIST '14'
```
PS: i dont know if `before_playlist` would be a good name, i just used it to be more in-line with the current styles (like `before_dl`, `video`, `after_move` and because `playlist` already exists)

### Provide verbose output that clearly demonstrates the problem

- [ ] 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
- [ ] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below

### Complete Verbose Output

_No response_

---

PPS: it would also be great to have all stages listed somewhere like all `OUTPUT TEMPLATE` options are, instead of just in the help for `--use-postprocessor`