Last active 1517806175

A script to generate videos from a directory of songs

Revision 67e653ce6486dd1ee009e15e266e18682c51bd33

song2video.py Raw
1#!/usr/bin/env python3
2# A script to generate videos for songs
3# usage: ./song2video.py [ext]
4# ext defaults to mp3
5from moviepy.editor import *
6from glob import glob
7from mutagen import File
8from sys import argv
9
10#points
11ART_TOP_LEFT = (620,45)
12ART_SIZE = (585,585)
13TEXT_TOP_LEFT = (85,60)
14TEXT_SIZE = (510,565)
15
16for fn in glob("*." + (sys.argv[1] if len(sys.argv) > 1 else "mp3")):
17 data = File(fn)
18 audio = AudioFileClip(fn)
19 text = TextClip("You are listening to\n\n{title[0]}\n\nBy {artist[0]}\n\nFrom {album[0]}".format(**data),
20 size=TEXT_SIZE,
21 color="white",
22 font="Corbel",
23 kerning=5,
24 fontsize=50,
25 method="caption",
26 align="West").set_position(TEXT_TOP_LEFT).set_duration(audio.duration).set_audio(audio)
27 cover = ImageClip("cover.jpg").set_position(ART_TOP_LEFT).set_duration(audio.duration).resize(ART_SIZE)
28 cvc = CompositeVideoClip([text, cover], size=(1280,720)).set_fps(60)
29 cvc.write_videofile(fn.replace(".mp3", ".mp4"))
30