We add the video height to the output file name if it's given.
We also add the playlist_index as a prefix, if the user requests this.
This is most likely a good idea, because videos uploaded on the same day
can otherwise be in another order than intended. This is most likely not
backwards compatible so already-downloaded channels should not use this.
We switch from `subprocess.run` to manually handling a `Popen` object so
we can decide whether a returncode of 1 is fine or now depending on the
output we see. Since we want live output during the download, we cannot
just capture all the output. Instead, we have to regularly print
whatever we captured. Therefore, we need a `Popen` object and need to
call `communicate()` with a timeout on it.