動画ダウンロードのみ対応してます。
import youtube_dl
import os
from pathlib import Path
import glob, re
import shutil
def ModeSelect():
print('現在音楽ダウンロードには非対応\n')
mode = input('Please input a mode (movie/musics)>')
return mode
def MusiDown():
ydl = youtube_dl.YoutubeDL({'outtmpl': '%(id)s%(ext)s',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}]
})
url = input('Please input the URL >')
with ydl:
result = ydl.extract_info(
url,
download=True
)
def MoveDown():
ydl = youtube_dl.YoutubeDL({'outtmpl': '%(id)s%(ext)s'})
url = input('Please input the URL >')
with ydl:
result = ydl.extract_info(
url,
download=True
)
def MusiChangeName():
new_name = input('Please input a name of the music >')
fname_before1 = glob.glob('*mp3')
fname_before2 = glob.glob('*mkv')
fname_after1 = new_name + '.mp3'
fname_after2 = new_name + '.mkv'
try:
os.rename(fname_before1[0], fname_after1)
fname = fname_after1
except:
os.rename(fname_before2[0], fname_after2)
fname = fname_after2
return fname
def MoveChangeName():
new_name = input('\n\nPlease input a name of the video >')
fname_before1 = glob.glob('*mp4')
fname_before2 = glob.glob('*mkv')
fname_after1 = new_name + '.mp4'
fname_after2 = new_name + '.mkv'
try:
os.rename(fname_before1[0], fname_after1)
fname = fname_after1
except:
os.rename(fname_before2[0], fname_after2)
fname = fname_after2
return fname
def MoveFile(mode, fname):
if mode == 'movie':
shutil.move(fname, './videos/' + fname)
else:
shutil.move(fname, './musics/' + fname)
mode = ModeSelect()
if mode == 'movie':
MoveDown()
else:
MusiDown()
fname = MoveChangeName()
MoveFile(mode, fname)
print('\n\n Complete!')
関数の勉強のために、機能をたくさんの関数に分けて描いてみました。
以下実行結果





まずモードを選びます(映像or音声)。次に対象のurlを入力します。
保存時のファイル名は自分で決められます。
あらかじめ作っておいたmoviesフォルダにファイルが保存されて、終了です。
- 困った点
モードをmusicにすると、「ffmpegをインストールしろ!」ってエラーが出るんですよ。してるっての。。
ということで、音声のみのダウンロードはまだできません。
解決したら更新版を上げますね。
- 参考にさせていただいたサイト:https://qiita.com/toten_s/items/de9895452ff3e4f18057

コメントを残す