Introduction and requirements
In this tutorial, we are going to create a function called download_all_video_in_channel that will download all the videos from a youtube channel id.
For using the code in this tutorial you will require to install requests and get a google API key.
To install requests execute:
pip install requests if(typeof __ez_fad_position != 'undefined'){__ez_fad_position('div-gpt-ad-tutorials_technology-medrectangle-3-0')}; For getting the API key follow this google documentation
Source code to download videos from channel
The next python code will scrape all videos from a channel. The final result will be youtube video urls.
import requests
def download_all_video_in_channel(api_key, channel_id):
base_video_url = 'https://www.youtube.com/watch?v=' base_search_url = 'https://www.googleapis.com/youtube/v3/search?'
first_url = base_search_url+ f'key={api_key}&channelId={channel_id}&part=snippet,id&order=date&maxResults=25'
video_links = [] url = first_url while True: resp = requests.get(url).json()
for i in resp['items']: if i['id']['kind'] == "youtube#video": video_links.append(base_video_url + i['id']['videoId'])
try: next_page_token = resp['nextPageToken'] url = first_url + '&pageToken={}'.format(next_page_token) except: break return video_links
The code uses base_search_url to search for all the videos on a channel. The function has a while True loop that will fetch all the pages of the channel. Since the API could return different objects, before adding the link to the video_links, every result is filtered by kind. The nextPageToken is used to browse in all the pages of the channel.