Youtubeからmp3に変換するPythonスクリプト
Youtubeからmp3に変換するPythonスクリプトをネットを参考に作成したのでメモ。
youtube_dlはpipでインストール。
ffmpegもDLが必要。
他にもyoutube-mp3-downloaderというモジュールも見つかったがどうなのだろう?
mp4をDLして、変換はFreemake video converterでmp4からmp3に変換しても良いがmp4は重いのでネットに制限ある場合にはもったいない。
>C:Python34\Scripts\pip.exe install youtube-dl
import youtube_dl import sys import os import glob def dl(URL): options = { 'format': 'bestaudio[ext=mp3]/bestaudio[ext=m4a]/bestaudio' } with youtube_dl.YoutubeDL(options) as ydl: ydl.download([URL]) def mp4to3(filename): root, ext = os.path.splitext(filename) if ext not in ['.m4a', '.mp4']: return newname = '%s.mp3' % root cmd = 'ffmpeg -i "%s" -ab 256k "%s"' % (filename, newname) os.system(cmd) os.remove(filename) def main(): if len(sys.argv) > 1: URL = sys.argv[1] dl(URL) filenames = glob.glob('./*.m4a') for filename in filenames: mp4to3(filename) main()
VS2010ビルドエラー
.NET Framework 4.5.1をインストールしたら、VisualStudio2010のC++で以下のビルドエラーが出た。
>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
.NET 4.5.1をアンインストールして、VS2010を修復したら治った。
Microsoftの環境はバージョンにより依存関係があって結構難しい。
HPの引っ越し
自分のHPを以下に引っ越しした。
さくらインターネットは解約予定。
C++11のVS2010への対応
cpprefjpに対応状況まとまっているが、std::array、std::for_each、std::tupleを調べてみた。
結果として、VS2010に対応していた!
これで色々出来そう。
#include <iostream> #include <array> #include <tuple> int main() { // 3要素のint型配列を定義し、初期化子リストで初期化 std::array<int, 3> ar = {3, 1, 4}; // size()メンバ関数による要素数取得 for (std::size_t i = 0; i < ar.size(); ++i) { ++ar[i]; // operator[]で任意の要素にランダムアクセス } // イテレータによる要素の横断 std::for_each(ar.begin(), ar.end(), [](int x) { std::cout << x << std::endl; }); // tuple auto tupleValue = std::tuple<int, double, double>(10, 15.5, 20.0); tupleValue = std::make_tuple(11, 15.3, 20.2); int value1 = std::get<0>(tupleValue); double value2 = std::get<1>(tupleValue); double value3 = std::get<2>(tupleValue); std::cout << value1 << " " << value2 << " " << value3 << std::endl; }