|
.. _exceptions: |
|
|
|
Exception handling |
|
================== |
|
|
|
Pytube implements a number of useful exceptions for handling program flow. |
|
There are a number of cases where pytube simply cannot access videos on YouTube |
|
and relies on the user to handle these exceptions. Generally speaking, if a |
|
video is unaccessible for any reason, this can be caught with the generic |
|
VideoUnavailable exception. This could be used, for example, to skip private |
|
videos in a playlist, videos that are region-restricted, and more. |
|
|
|
Let's see what your code might look like if you need to do exception handling:: |
|
|
|
>>> from pytube import Playlist, YouTube |
|
>>> playlist_url = 'https: |
|
>>> p = Playlist(playlist_url) |
|
>>> for url in p.video_urls: |
|
... try: |
|
... yt = YouTube(url) |
|
... except VideoUnavailable: |
|
... print(f'Video {url} is unavaialable, skipping.') |
|
... else: |
|
... print(f'Downloading video: {url}') |
|
... yt.streams.first().download() |
|
|
|
This will automatically skip over videos that could not be downloaded due to a |
|
limitation with the pytube library. You can find more details about what |
|
specific exceptions can be handled here: :py:mod:`pytube.exceptions`. |
|
|