Dies ist der erste Beitrag zu Qiita. Grundsätzlich habe ich vor, es als Memorandum zu verwenden. Ich lerne immer noch Python. Bitte weisen Sie auf Probleme im Zusammenhang mit dem Code hin.
Auch in Bezug auf das Urheberrecht usw. erkennen wir an, dass dies im Rahmen der privaten Nutzung möglich ist. Bitte weisen Sie jedoch darauf hin, wenn ein Problem vorliegt.
Greifen Sie zunächst auf https://console.cloud.google.com/ zu, um ein Projekt zu erstellen, die Youtube-Daten-API aus der Bibliothek zu aktivieren und Anmeldeinformationen hinzuzufügen (API-Schlüssel).
Installieren Sie als Nächstes die Bibliothek, die für die Verwendung der Youtube-Daten-API erforderlich ist, und installieren Sie Youtube_DL, die zum Speichern des Videos erforderlich ist.
pip install google-api-python-client
pip install youtube-dl
Importieren Sie nach der Installation zuerst die Bibliothek und weisen Sie sie jeder Variablen zu.
from apiclient import discovery
import youtube_dl
DEVELOPER_KEY = "" #API-Schlüssel hier
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [
{'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192'},
{'key': 'FFmpegMetadata'},
],
} # youtube-Konvertieren Sie mit dl heruntergeladene Videos in Musik
Wenn Sie Videos anstelle von Musik herunterladen möchten, können Sie ytdl_opts leeren.
Als nächstes erhalten Sie die URL des am meisten abgespielten Videos auf dem Kanal von 0 bis 10.
def youtube_search(channelId):
videos = [] #Liste zum Einfügen der URL
youtube = discovery.build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
developerKey=DEVELOPER_KEY)
search_response = youtube.search().list(
part="snippet",
channelId= channelId,
maxResults=10,
order="viewCount",
).execute() #Durchsuchen Sie 10 Videos in der Reihenfolge der Anzahl der Aufrufe, nachdem Sie den Kanal mit der API angegeben haben
for search_result in search_response.get("items", []):
if search_result["id"]["kind"] == "youtube#video":
print("https://www.youtube.com/watch?v=" + search_result['id']['videoId'])
videos.append(search_result["id"]["videoId"]) #URL zu Videos hinzufügen
return videos
Übrigens kann die Anzahl der Suchvorgänge beliebig bis maxResults = 0-50 festgelegt werden.
Laden Sie alle Videos mit der zuletzt aufgeführten URL herunter
def download_video(video_list):
for i, videoId in enumerate(video_list): #Indexnummer und Element gleichzeitig drehen
# ydl_opts['outtmpl'] = "music{}".format(str(i)) + '.%(ext)s' #Wenn Sie das Verständnis der Reihenfolge der Anzahl der Ansichten erleichtern möchten, klicken Sie hier#Wenn Sie music0 entfernen-10.mp3(mp4)Kann als heruntergeladen werden
ydl = youtube_dl.YoutubeDL(ydl_opts)
ydl.extract_info("https://www.youtube.com/watch?v={}".format(videoId), download=True)
# ytdl_opts=...Der Teil gibt das Format des Dateinamens an.
#Wenn Sie Musik löschen[0-10].mp3(mp4)Sie können es im Format herunterladen.
Ein Formular, das verwendet werden kann, indem der Code so ausgeführt wird, wie er ist
from apiclient import discovery
import youtube_dl
DEVELOPER_KEY = "YOUR_API_KEY" #Bitte geben Sie hier den API-Schlüssel ein
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [
{'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192'},
{'key': 'FFmpegMetadata'},
],
} # youtube-Konvertieren Sie mit dl heruntergeladene Videos in Musik
def youtube_search(channelId):
videos = [] #Liste zum Einfügen der URL
youtube = discovery.build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
developerKey=DEVELOPER_KEY)
search_response = youtube.search().list(
part="snippet",
channelId= channelId,
maxResults=10,
order="viewCount",
).execute() #Durchsuchen Sie 10 Videos in der Reihenfolge der Anzahl der Aufrufe, nachdem Sie den Kanal mit der API angegeben haben
for search_result in search_response.get("items", []):
if search_result["id"]["kind"] == "youtube#video":
print("https://www.youtube.com/watch?v=" + search_result['id']['videoId'])
videos.append(search_result["id"]["videoId"]) #URL zu Videos hinzufügen
return videos
def download_video(video_list):
for i, videoId in enumerate(video_list): #Indexnummer und Element gleichzeitig drehen
# ydl_opts['outtmpl'] = "music{}".format(str(i)) + '.%(ext)s' #Wenn Sie die Reihenfolge der Aufrufe jedes Videos besser verstehen möchten, klicken Sie hier#Wenn Sie music0 entfernen-10.Kann als MP3 heruntergeladen werden
ydl = youtube_dl.YoutubeDL(ydl_opts)
ydl.extract_info("https://www.youtube.com/watch?v={}".format(videoId), download=True)
if __name__ == '__main__':
channel = input("Bitte geben Sie die Kanal-ID ein:")
videos = youtube_search(channel)
download_video(videos)
print('Der Download ist abgeschlossen.')
Dieser Artikel endet hier. Vielen Dank.
Recommended Posts