JakobDev
Anmeldungsdatum: 11. Dezember 2015
Beiträge: 290
Wohnort: Saarland
|
Ich suche nach einer Möglichkeit, den Inhalt einer privaten YouTube Playlist abzufragen. Auf Stackoverflow habe ich folgendes gefunden:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 | """ Pull All Youtube Videos from a Playlist """
from apiclient.discovery import build
from apiclient.errors import HttpError
from oauth2client.tools import argparser
DEVELOPER_KEY = "YOURKEY HERE"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
def fetch_all_youtube_videos(playlistId):
"""
Fetches a playlist of videos from youtube
We splice the results together in no particular order
Parameters:
parm1 - (string) playlistId
Returns:
playListItem Dict
"""
youtube = build(YOUTUBE_API_SERVICE_NAME,
YOUTUBE_API_VERSION,
developerKey=DEVELOPER_KEY)
res = youtube.playlistItems().list(
part="snippet",
playlistId=playlistId,
maxResults="50"
).execute()
nextPageToken = res.get('nextPageToken')
while ('nextPageToken' in res):
nextPage = youtube.playlistItems().list(
part="snippet",
playlistId=playlistId,
maxResults="50",
pageToken=nextPageToken
).execute()
res['items'] = res['items'] + nextPage['items']
if 'nextPageToken' not in nextPage:
res.pop('nextPageToken', None)
else:
nextPageToken = nextPage['nextPageToken']
return res
if __name__ == '__main__':
# comedy central playlist, has 332 video
# https://www.youtube.com/watch?v=tJDLdxYKh3k&list=PLD7nPL1U-R5rDpeH95XsK0qwJHLTS3tNT
videos = fetch_all_youtube_videos("PLD7nPL1U-R5rDpeH95XsK0qwJHLTS3tNT")
|
Das funktioniert allerdings nur für öffentliche Playlists. Für privtae habe ich kein Beispiel gefunden. Ich habe zwar noch das hier gefunden, allerdings funktioniert das Paket gdata, welches ich mir über pip installiert habe nicht. Kann mir dabei wer helfen. Es ist eingelich nur ein kleines privates Skript, dass meine Musikplaylist auf eventuell gelöschte Videos überwachen soll. Von daher ist es nicht schlimm, wenn das Passwort im Code steht.
|
Prof._Frink
Anmeldungsdatum: 29. Mai 2010
Beiträge: 1096
|
Versuche es doch einfach erstmal mit youtube-dl, vielleicht funktioniert das ja und das ist auch in Python geschrieben.
|
JakobDev
(Themenstarter)
Anmeldungsdatum: 11. Dezember 2015
Beiträge: 290
Wohnort: Saarland
|
Das Problem ist, dass ich nur eine Liste der Videos möchte und keinen Download
|
Prof._Frink
Anmeldungsdatum: 29. Mai 2010
Beiträge: 1096
|
Eine Liste der Links? Das geht mit Youtube-DL, glaube ich auch, im Zweifelsfall macht man einfach ein grep auf die Ausgabe, die beim Download erfolgt und löscht die Dateien danach wieder.
|
Prof._Frink
Anmeldungsdatum: 29. Mai 2010
Beiträge: 1096
|
Hier, so bekommst du die Direktlinks zu den Videos, das sind dann nicht die Youtube-Links, wenn du die willst, muss ich noch mal nachgucken, wie das geht: | youtube-dl -g "https://www.youtube.com/watch?v=tJDLdxYKh3k&list=PLD7nPL1U-R5rDpeH95XsK0qwJHLTS3tNT"
|
|
NORACSA
Anmeldungsdatum: 31. Januar 2010
Beiträge: Zähle...
|
Prof._Frink schrieb: Hier, so bekommst du die Direktlinks zu den Videos, das sind dann nicht die Youtube-Links, wenn du die willst, muss ich noch mal nachgucken, wie das geht: | youtube-dl -g "https://www.youtube.com/watch?v=tJDLdxYKh3k&list=PLD7nPL1U-R5rDpeH95XsK0qwJHLTS3tNT"
|
Und weil es eine private Playlist ist, muss man sich vorher einloggen via -u(und eventuell -p).
|
Prof._Frink
Anmeldungsdatum: 29. Mai 2010
Beiträge: 1096
|
Also bei mir ging es ohne Login.
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11180
Wohnort: München
|
gdata scheint obsolet zu sein - google-api-python-client beschreibt die aktuelle Vorgehensweise. Man scheint erst eine Liste der Playlists abrufen zu müssen und danach für jede Playlist-ID eine Liste der Items daran - Beispielcode für solche Aktionen kann man sich hier ausgeben lassen: https://developers.google.com/youtube/v3/code_samples/code_snippets
|
NORACSA
Anmeldungsdatum: 31. Januar 2010
Beiträge: 180
|
Prof._Frink schrieb: Also bei mir ging es ohne Login.
Er will aber eine private Playlist abfragen, siehe Titel. Das wird nicht ohne Login gehen.
|
Prof._Frink
Anmeldungsdatum: 29. Mai 2010
Beiträge: 1096
|
Achso, okay, ich dachte die URL aus dem Skript wäre schon die richtige.
|
NORACSA
Anmeldungsdatum: 31. Januar 2010
Beiträge: 180
|
Prof._Frink schrieb: Achso, okay, ich dachte die URL aus dem Skript wäre schon die richtige.
Nein, das ist offensichtlich Comedy Central, offensichtlich von Stack Overflow kopiert.
|
Prof._Frink
Anmeldungsdatum: 29. Mai 2010
Beiträge: 1096
|
Ja, kein Plan, war mir jetzt zu müßig, darüber nachzudenken. Sorry.
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29067
Wohnort: WW
|
Hallo, lt. YoutTube API Doku kann man auch private Playlisten abrufen. Die Authentifizierung erfolgt nach meinem Verstädnis ja über OAuth2 und den Developer Key. Über die Property status.privacyStatus kannst du festlegen, welche Playlisten du haben willst. Gruß, noisefloor
|