Youtube Data API-Abonnement | Set 1
In diesem Artikel werden wir über die Youtube-Abonnements diskutieren. Wie API verwendet werden kann, um diese Abonnements abzurufen und zu bearbeiten.
Es gibt drei Operationen, die wir diskutieren werden:
- Listen Sie alle Abonnements auf, die einem Youtube-Kanal zugeordnet sind
- Fügen Sie ein neues Abonnement ein
- Abonnement löschen.
Für all diese Methoden ist eine Autorisierung des Benutzers erforderlich. Daher werden wir zunächst diskutieren, wie Sie einen OAuth-Berechtigungsnachweis erhalten.
Führen Sie die folgenden Schritte aus, um eine Client-ID und einen geheimen Schlüssel zu generieren.
- Zum Google Google Developers Console und klicken Sie auf Anmelden in der rechten oberen Ecke Ecke der Seite. Melden Sie sich mit den Anmeldeinformationen des gültigen Google-Kontos an. Wenn Sie kein Google-Konto haben, richten Sie zuerst ein Konto ein und melden Sie sich dann anhand der Details auf der Google Developers Homepage an.
- Navigieren Sie nun zum Entwickler-Dashboard und erstellen Sie ein neues Projekt.
- Klicken Sie auf die Option API aktivieren .
- Suchen Sie im Suchfeld nach Youtube Data API und wählen Sie die Option Youtube Data API aus, die in der Dropdown-Liste enthalten ist.
- Sie werden zu einem Bildschirm weitergeleitet, der Informationen zur Youtube-Daten-API sowie zwei Optionen enthält: ENABLE- und TRY-API .
- Klicken Sie auf die Option AKTIVIEREN , um mit der API zu beginnen.
- Wählen Sie in der Seitenleiste unter APIs & Services die Option Anmeldeinformationen aus .
- Wählen Sie oben auf der Seite die Registerkarte OAuth-Zustimmungsbildschirm . Wählen Sie eine E-Mail-Adresse aus, geben Sie einen Produktnamen ein, falls dieser noch nicht festgelegt ist, und klicken Sie auf die Schaltfläche Speichern.
- Wählen Sie auf der Registerkarte Anmeldeinformationen die Dropdown-Liste Anmeldeinformationen erstellen aus und wählen Sie OAuth-Client-ID . OAuth wird im Allgemeinen verwendet, wenn eine Autorisierung erforderlich ist, wie beim Abrufen beliebter Videos eines Benutzers.
- Wählen Sie den Anwendungstyp Andere aus, geben Sie den Namen "YouTube Data API Myvideos" ein und klicken Sie auf die Schaltfläche "Erstellen".
- OK klicken.
- Klicken Sie rechts neben der Client-ID auf die Schaltfläche Herunterladen, um die JSON-Datei herunterzuladen.
- Speichern Sie die Datei, benennen Sie sie in client_secret.json um und verschieben Sie sie in das Arbeitsverzeichnis.
Installieren Sie zusätzliche Bibliotheken mit dem Befehl pip :
pip install –upgrade google-auth google-auth-oauthlib google-auth-httplib2
Hinweis: Lassen Sie uns diskutieren, wie Sie die Kanal-ID finden, um sie als Parameter im ersten Code zu verwenden - um alle Abonnements aufzulisten, die einer Youtube-Kanal-ID zugeordnet sind.
Führen Sie die folgenden Schritte aus, um die Kanal-ID zu ermitteln:
- Melde dich in deinem Youtube-Konto an.
- Klicken Sie in der oberen linken Ecke auf das dreizeilige Symbol und gehen Sie zu Einstellungen.
- Jetzt wird im selben Menü auf der linken Seite die Option der erweiterten Einstellungen angezeigt.
- Sie sehen Ihre Kanal-ID unter Kontoinformationen .
Code zum Auflisten von Abonnements: Hier sind drei Möglichkeiten, um diese Aufgabe auszuführen. Wir werden diese im Detail diskutieren.
- Listen Sie Abonnements auf, die einer Kanal-ID zugeordnet sind
- Abonnements des eigenen Kontos auflisten
- Überprüfen Sie, ob ein gewünschtes Abonnement vorhanden ist oder nicht
Code zum Auflisten aller Abonnements, die einer Kanal-ID zugeordnet sind: Dieses Beispiel zeigt, wie die Kanal-ID als Parameter zum Abrufen aller Abonnements für diesen bestimmten Youtube-Kanal verwendet werden kann.
import
os
import
google.oauth2.credentials
import
google_auth_oauthlib.flow
from
googleapiclient.discovery
import
build
from
googleapiclient.errors
import
HttpError
from
google_auth_oauthlib.flow
import
InstalledAppFlow
CLIENT_SECRETS_FILE
=
"client_secret.json"
SCOPES
=
[
'https://www.googleapis.com/auth/youtube.force-ssl'
]
API_SERVICE_NAME
=
'youtube'
API_VERSION
=
'v3'
def
get_authenticated_service():
flow
=
InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
credentials
=
flow.run_console()
return
build(API_SERVICE_NAME, API_VERSION, credentials
=
credentials)
def
print_response(response):
(response)
def
build_resource(properties):
resource
=
{}
for
p
in
properties:
prop_array
=
p.split(
'.'
)
ref
=
resource
for
pa
in
range
(
0
,
len
(prop_array)):
is_array
=
False
key
=
prop_array[pa]
if
key[
-
2
:]
=
=
'[]'
:
key
=
key[
0
:
len
(key)
-
2
:]
is_array
=
True
if
pa
=
=
(
len
(prop_array)
-
1
):
if
properties[p]:
if
is_array:
ref[key]
=
properties[p].split(
', '
)
else
:
ref[key]
=
properties[p]
elif
key
not
in
ref:
ref[key]
=
{}
ref
=
ref[key]
else
:
ref
=
ref[key]
return
resource
def
remove_empty_kwargs(
*
*
kwargs):
good_kwargs
=
{}
if
kwargs
is
not
None
:
for
key, value
in
kwargs.items():
if
value:
good_kwargs[key]
=
value
return
good_kwargs
def
subscriptions_list_by_channel_id(client,
*
*
kwargs):
kwargs
=
remove_empty_kwargs(
*
*
kwargs)
response
=
client.subscriptions().
list
(
*
*
kwargs).execute()
return
print_response(response)
if
__name__
=
=
'__main__'
:
os.environ[
'OAUTHLIB_INSECURE_TRANSPORT'
]
=
'1'
client
=
get_authenticated_service()
subscriptions_list_by_channel_id(client,
part
=
'snippet, contentDetails'
,
channelId
=
'UCqoMU8lNdUq63ZmTJFd620w'
,
maxResults
=
3
)
Ausgabe:
Während der Ausführung des Codes werden Sie nach dem Autorisierungscode gefragt. Um den Code zu erhalten, müssen Sie dem im Eingabeaufforderungsbildschirm über der Zeile angegebenen Link folgen: Geben Sie den Autorisierungscode ein.
Folgen Sie nun dem Link und kopieren Sie den Autorisierungscode, den Sie durch Erteilen der Berechtigung erhalten.
Wir haben den Parameter maxResults auf 3 gesetzt, dh warum in der Ausgabe nur die drei wichtigsten Abonnementnamen angezeigt werden. Sie können jedoch anhand des totalResulst- Werts 38 erkennen, was bedeutet, dass sich im zugeordneten Kanal insgesamt 38 Abonnements befinden.
Referenzen: https://developers.google.com/youtube/v3/docs/subscriptions