Skip to content

Instantly share code, notes, and snippets.

@totetmatt
Created April 4, 2017 05:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save totetmatt/0772cf5e163453c8d20bf3a8fe9a5dd6 to your computer and use it in GitHub Desktop.
Save totetmatt/0772cf5e163453c8d20bf3a8fe9a5dd6 to your computer and use it in GitHub Desktop.
import requests
import re
# Avoir les liens d'une video youtube.com/watch?v=id
def link(id):
# Regex utilisé parce que le service de liens ne retourne pas un Json valide et du coup c'est plus rapide
prog= re.compile('"videoId":"(.*?)"', re.MULTILINE)
# Service qui donne les liens embarqués dans une vidéo
req = requests.get('https://www.youtube.com/get_endscreen?v=%s'%id)
# Trouver tout les liens
result = prog.findall(req.content.decode('UTF-8'))
for r in result:
print(id,',',r) # Print pour générer le csv (stdout)
return result
l = ['EZGra6O8ClQ','cUAPNwbZNzg'] # Vidéo de départ
visited = [] # Vidéos visités
while l: # Tant qui a une vidéo a visiter
id = l.pop() # On la sort
if id not in visited: # Si on a pas déjà visité on l'ajoute au visited et on regarde les prochains
visited.append(id)
nxt = link(id)
for n in nxt:
l.append(n) # On ajoute les liens au "prochains a visiter"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment