Ceci est le premier message sur Qiita. Fondamentalement, je prévois de l'utiliser comme un mémorandum. J'étudie toujours Python, veuillez donc signaler toute précipitation concernant le code.
De plus, concernant les droits d'auteur, etc., nous reconnaissons que cela est possible dans le cadre d'une utilisation privée, mais veuillez indiquer s'il y a un problème.
Tout d'abord, accédez à https://console.cloud.google.com/ pour créer un projet, activez l'API de données Youtube à partir de la bibliothèque et ajoutez des informations d'identification (clé API).
Ensuite, installez la bibliothèque requise pour utiliser l'API Youtube Data et installez Youtube_DL requis pour enregistrer la vidéo.
pip install google-api-python-client
pip install youtube-dl
Une fois installée, importez d'abord la bibliothèque et affectez-la à chaque variable.
from apiclient import discovery
import youtube_dl
DEVELOPER_KEY = "" #Clé API ici
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [
{'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192'},
{'key': 'FFmpegMetadata'},
],
} # youtube-Convertir des vidéos téléchargées avec DL en musique
Si vous souhaitez télécharger des vidéos au lieu de la musique, vous pouvez vider ytdl_opts.
Ensuite, obtenez l'URL de la vidéo la plus lue sur la chaîne de 0 à 10.
def youtube_search(channelId):
videos = [] #Liste à mettre l'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() #Recherchez 10 vidéos dans l'ordre du nombre de vues après avoir spécifié la chaîne avec l'API
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"]) #Ajouter une URL aux vidéos
return videos
En passant, le nombre de recherches peut être spécifié arbitrairement jusqu'à maxResults = 0-50.
Téléchargez toutes les vidéos avec la dernière URL répertoriée
def download_video(video_list):
for i, videoId in enumerate(video_list): #Tourner le numéro d'index et l'élément en même temps
# ydl_opts['outtmpl'] = "music{}".format(str(i)) + '.%(ext)s' #Si vous souhaitez faciliter la compréhension de l'ordre du nombre de vues, ici#Si vous supprimez de la musique0-10.mp3(mp4)Peut être téléchargé comme
ydl = youtube_dl.YoutubeDL(ydl_opts)
ydl.extract_info("https://www.youtube.com/watch?v={}".format(videoId), download=True)
# ytdl_opts=...La partie indique le format du nom de fichier.
#Si vous effacez la musique[0-10].mp3(mp4)Vous pouvez le télécharger au format.
Un formulaire qui peut être utilisé en exécutant le code tel quel
from apiclient import discovery
import youtube_dl
DEVELOPER_KEY = "YOUR_API_KEY" #Veuillez entrer la clé API ici
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [
{'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192'},
{'key': 'FFmpegMetadata'},
],
} # youtube-Convertir des vidéos téléchargées avec DL en musique
def youtube_search(channelId):
videos = [] #Liste à mettre l'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() #Recherchez 10 vidéos dans l'ordre du nombre de vues après avoir spécifié la chaîne avec l'API
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"]) #Ajouter une URL aux vidéos
return videos
def download_video(video_list):
for i, videoId in enumerate(video_list): #Tourner le numéro d'index et l'élément en même temps
# ydl_opts['outtmpl'] = "music{}".format(str(i)) + '.%(ext)s' #Si vous souhaitez faciliter la compréhension de l'ordre du nombre de vues de chaque vidéo, cliquez ici#Si vous supprimez de la musique0-10.Peut être téléchargé en mp3
ydl = youtube_dl.YoutubeDL(ydl_opts)
ydl.extract_info("https://www.youtube.com/watch?v={}".format(videoId), download=True)
if __name__ == '__main__':
channel = input("Veuillez saisir l'identifiant de la chaîne:")
videos = youtube_search(channel)
download_video(videos)
print('Le téléchargement est terminé.')
Cet article se termine ici. Merci beaucoup.
Recommended Posts