Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import requests
- from dotenv import load_dotenv
- def get_uploads_id(channel_id, token):
- url = "https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id=" + channel_id + "&key=" + token
- # Here we get the id of the "uploads" playlist, which is a playlist like the others
- r = requests.get(url)
- json = r.json()
- return json['items'][0]['contentDetails']['relatedPlaylists']['uploads']
- def get_videos_ids(uploads_id, token, nextPage):
- url = ""
- if nextPage == "":
- url = "https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=50&playlistId=" + uploads_id + "&key=" + token
- else:
- url = "https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=50&playlistId=" + uploads_id + "&pageToken=" + nextPage + "&key=" + token
- r = requests.get(url)
- json = r.json()
- video_ids = []
- for el in json["items"]:
- vid = el["contentDetails"]["videoId"]
- video_ids.append(vid)
- if "nextPageToken" in json:
- return video_ids + get_videos_ids(uploads_id, token, json["nextPageToken"])
- else:
- return video_ids
- def main():
- # We load the environment. You need a .env with API_KEY=yourAPIKeyForYoutube and CHANNEL_ID=theChannelID
- load_dotenv()
- token = os.environ.get("API_KEY")
- channel_id = os.environ.get("CHANNEL_ID")
- uploads_id = get_uploads_id(channel_id, token)
- video_ids = get_videos_ids(uploads_id, token, "")
- with open("ids.txt", "w") as file:
- for v_id in video_ids:
- file.write(v_id)
- file.write("\n")
- print(len(video_ids))
- if __name__ == "__main__":
- main()
Add Comment
Please, Sign In to add comment