> ytdl-sub
> This is the only yt-dlp wrapper that allowed me to properly maintain the Playlist structure to any extent
I have the same requirement and it's possible to do it with the default yt-dlp:
yt-dlp --embed-metadata --parse-metadata "playlist_index:%(track_number)s" "PLAYLIST_URL"