[GO] YouTube-Videoverwaltung mit Python 3

Dieses Mal werde ich versuchen, eine Liste der Videos meines Kontos auf der Konsole anzuzeigen.

Entwicklungsumgebung

Grobe Prozedur

  1. Vorbereitung der Google API
  2. Erstellen Sie eine virtuelle Umgebung für Python
  3. Führen Sie Python aus

Referenz-URL

http://silver-shell.org/blog/?p=227 http://qiita.com/ottati/items/f7782bc834847470d4c8

Google Api vorbereiten

Die Steuerung erfolgt in der Google API Console.

Projekterstellung und Zertifizierung

Um die Google-API verwenden zu können, müssen Sie ein "Projekt" erstellen. Wählen Sie "Bibliothek" aus dem linken Menü [https://console.developers.google.com/apis/library] und wählen Sie die YouTube-Daten-API aus. Wählen Sie "Projekt erstellen". (Es gibt andere Möglichkeiten, ein "Projekt" zu erstellen.) Erstellen Sie ein Projekt mit einem geeigneten Namen. Informationen zum Löschen des Projekts finden Sie unter hier. 006.png

Authentifizierungsinformationen

Wählen Sie "Bibliothek" aus dem linken Menü, Wähle die YouTube-Daten-API aus. Aktiviere die Schaltfläche neben "Youtube API Data v3". Wenn Sie es aktivieren, wird eine Schaltfläche mit dem Namen "Anmeldeinformationen erstellen" angezeigt. Klicken Sie also darauf.

002.png

Der gleiche Bildschirm kann auch durch Auswahl von "Anmeldeinformationen" -> "Anmeldeinformationen" -> "Mit Assistent auswählen" angezeigt werden. 009.png

Fügen Sie Ihrem Projekt Anmeldeinformationen hinzu

"Bestimmen Sie die Art der erforderlichen Anmeldeinformationen" für "YouTube Data API v3" Ändern Sie "API aufrufen" in "Webbrowser (Javascript)". Setzen Sie "Typ der Daten, auf die zugegriffen werden soll" auf "Benutzerdaten". Klicken Sie auf "Erforderliche Anmeldeinformationen". 003.png

Erstellen Sie einen OAuth 2.0-Client

Geben Sie zur Identifizierung einen geeigneten Namen in Englisch an. 004.png

Der genehmigte Umleitungs-URI lautet "http: // localhost: 8080 /". Zu (Dieser Teil kann sich je nach Umgebung ändern. Er kann 8000 oder 8090 sein und funktioniert möglicherweise nicht ohne das letzte "/".) 005.png

Anmeldeinformationen herunterladen

Klicken Sie auf die Schaltfläche "Herunterladen", um die JSON-Datei herunterzuladen, in der die für Python zu verwendenden Einstellungen beschrieben werden. Sie können es herunterladen, nachdem Sie die Einstellungen hier vorgenommen haben. Der Dateiname kann sich jedoch von dem unterscheiden, als Sie ihn hier heruntergeladen haben. (Gleicher Inhalt mit Ausnahme des Dateinamens) (Diesmal war es eine Datei namens client_id.json.) 007.png

Erstellen einer virtuellen Umgebung für Python

Erstellen Sie eine neue virtuelle Python-Umgebung für den Betrieb im Terminal (Eingabeaufforderung für Windows). Diesmal habe ich es youtube genannt.

command


conda create -n youtube python=3.5.3
#Beim Erstellen mit einer Reihe von Anaconda
# conda create -n youtube python=3.5.3 anaconda
#Bei der Überprüfung der erstellten Umgebung
# conda info -e
# conda list -n youtube
#Beim Löschen der erstellten virtuellen Umgebung
# conda remove -n youtube --all

Aktivierung der virtuellen Umgebung

Nachfolgende Arbeiten werden in der virtuellen Umgebung ausgeführt.

command


# Windows
activate youtube
#Deaktivieren
# deactivate

# Mac
source activate youtube
#Deaktivieren
# source deactivate

Django Installation

cmd


conda install -c https://conda.anaconda.org/anaconda django

Installieren Sie den Google Api Client

cmd


pip install --upgrade google-api-python-client

Installieren Sie oauth2client

https://github.com/google/oauth2client

cmd


pip install --upgrade oauth2client

Update nur für den Fall

http://mikegrouchy.com/blog/2014/06/pro-tip-pip-upgrade-all-python-packages.html

cmd


pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs pip install -U

Python ausführen

Erstellen eines Python-Projekts

Erstellen Sie ein Verzeichnis, um die Python-Datei zu speichern und die heruntergeladene Datei dorthin zu verschieben.

Erstellen Sie eine Python-Datei.

Dieses Mal erhalten wir eine Liste der hochgeladenen Dateien. Einige Änderungen wurden basierend auf dem Skript "Get My Uploaded Video" unter der folgenden URL vorgenommen.

https://developers.google.com/youtube/v3/code_samples/python?hl=ja#retrieve_my_uploads

Erstellen Sie eine Python-Datei, die das folgende Skript beschreibt. (Diesmal main.py genannt) 010.png

main.py


#! env python
# -*- coding: utf-8 -*-

import httplib2
import os
import sys
import glob

from apiclient.discovery import build
from oauth2client.client import flow_from_clientsecrets
from oauth2client.file import Storage
from oauth2client.tools import argparser, run_flow

if __name__ == '__main__':
    #Ändern Sie das aktuelle Verzeichnis in den Speicherort der ausführbaren Datei
    os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))

    CLIENT_SECRETS_FILE = "client_id.json"  #Heruntergeladener Dateiname

    MISSING_CLIENT_SECRETS_MESSAGE = """
    WARNING: Please configure OAuth 2.0

    To make this sample run you will need to populate the client_secrets.json file
    found at:

       %s

    with information from the Developers Console
    https://console.developers.google.com/

    For more information about the client_secrets.json file format, please visit:
    https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
    """ % os.path.abspath(os.path.join(os.path.dirname(__file__),
                                       CLIENT_SECRETS_FILE))

    YOUTUBE_READONLY_SCOPE = "https://www.googleapis.com/auth/youtube.readonly"
    YOUTUBE_API_SERVICE_NAME = "youtube"
    YOUTUBE_API_VERSION = "v3"

    CLIENT_SECRETS_FILE_PATH = glob.glob(os.path.join(os.getcwd(), CLIENT_SECRETS_FILE))[0]

    flow = flow_from_clientsecrets(os.path.join(os.getcwd(), CLIENT_SECRETS_FILE_PATH),
                                   message=MISSING_CLIENT_SECRETS_MESSAGE,
                                   scope=YOUTUBE_READONLY_SCOPE)

    storage = Storage("%s-oauth2.json" % sys.argv[0])
    credentials = storage.get()

    if credentials is None or credentials.invalid:
        flags = argparser.parse_args()
        credentials = run_flow(flow, storage, flags)

    youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
                    http=credentials.authorize(httplib2.Http()))

    channels_response = youtube.channels().list(
        mine=True,
        part="contentDetails"
    ).execute()

    for channel in channels_response["items"]:
        uploads_list_id = channel["contentDetails"]["relatedPlaylists"]["uploads"]
        print("Videos in list %s" % uploads_list_id)
        playlistitems_list_request = youtube.playlistItems().list(
            playlistId=uploads_list_id,
            part="snippet",
            maxResults=50
        )
        while playlistitems_list_request:
            playlistitems_list_response = playlistitems_list_request.execute()

            for playlist_item in playlistitems_list_response["items"]:
                title = playlist_item["snippet"]["title"]
                video_id = playlist_item["snippet"]["resourceId"]["videoId"]
                print("%s (%s)" % (title, video_id))

            playlistitems_list_request = youtube.playlistItems().list_next(
                playlistitems_list_request, playlistitems_list_response)

Erster Lauf

Bei Ausführung in einem Terminal in einer virtuellen Umgebung (Eingabeaufforderung für Windows)

cmd


cd (Python-Projektverzeichnis)
python main.py

Wenn Sie es zum ersten Mal ausführen, wird der Browser gestartet "(Der Name des Berechtigungsnachweises) fordert die folgende Berechtigung an." Wird angezeigt, geben Sie also die Erlaubnis.

Ausführung abgeschlossen

Nach dem Ausführen des obigen Vorgangs wird die Liste der bisher hochgeladenen Videos auf der Konsole angezeigt.

Andere Steuerelemente

Verschiedene andere Steuerelemente als die Listenanzeige sind möglich. Stellen Sie beim Löschen eines Videos sicher, dass Sie es gründlich überprüfen, bevor Sie dies auf eigenes Risiko tun.

https://developers.google.com/youtube/1.0/developers_guide_python

Recommended Posts

YouTube-Videoverwaltung mit Python 3
Holen Sie sich Youtube-Daten mit Python
[GUI in Python] PyQt5-Layout-Management-
Passwortverwaltung per Python: Schlüsselbund
Videowiedergabe mit Ton auf Python !! (tkinter / imageio)
FizzBuzz in Python3
Scraping mit Python
Scraping mit Python
Speichern Sie Videos Frame für Frame mit Python OpenCV
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel-Tabellenerstellung mit Python [Fortschrittsverwaltungstabelle]
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Sammle Videoinformationen zu "Singen mit XX Personen" [Python] [Youtube Data API]
[Python] Ich habe mit Tkinter einen Youtube Downloader erstellt.
Poste den hochfliegenden Titel von Youtube mit python3 auf Twitter
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
Scraping mit Python + PhantomJS
Tweets mit Python posten
Fahren Sie WebDriver mit Python
Verwenden Sie Mecab mit Python 3
[Python] Mit CGIHTTPServer umleiten
Spielen Sie YouTube in Python
Sprachanalyse mit Python
Denken Sie an Yaml mit Python
Kinesis mit Python betreiben
Erste Schritte mit Python
Verwenden Sie DynamoDB mit Python
Zundko Getter mit Python