pytube / docs /user /exceptions.rst
Taylor Fox Dahlin
Improvement/docs (#924)
685331f unverified
raw
history blame
1.27 kB
.. _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://youtube.com/playlist?list=special_playlist_id'
>>> 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`.