Changes:
- added `list_transcripts(video_id)` to `YouTubeTranscriptApi`, which returns a `TranscriptList` object, representing all available transcripts
- `TranscriptList` objects provide the methods `find_transcript(languages)`, `find_generated_transcript(languages)` and `find_manually_created_transcript(languages)`, which return `Transcript` objects
- `Transcript` objects represent a transcripts and provide metadata properties
- by calling `transcript.fetch()` the actual transcript is fetched
- added new translation feature
- by calling `transcript.translate('de')` on a `Transcript` object YouTubes translation feature can be accessed
- added more specific exception types and thereby vastly improved error messages
- `TranscriptsDisabled`, `NoTranscriptFound`, `VideoUnavailable`, `NotTranslatable`, `TranslationLanguageNotAvailable`, `NoTranscriptAvailable`
- all exceptions are subtypes of `CouldNotRetrieveTranscript`
- updated CLI to make new features accessible
- updated Documentation to explain new features and changes
- completely reworked how the module scrapes transcripts, which makes it way more solid
BREAKING:
- `youtube_transcript_api.YouTubeTranscriptApi.CouldNotRetrieveTranscript` has been move to `youtube_transcript_api.CouldNotRetrieveTranscript`
Special thanks to danielcliu for his contributions and time in the reviewing process!