Last active 1517806175

A script to generate videos from a directory of songs

Revision 85bbfe5b60047c94650a711ec3e9922ef735016f

song2video.py Raw
1#!/usr/bin/env python3
2# A script to generate videos for songs. Modify for given file type
3# usage: ./song2video.py [ext]
4# ext defaults to mp3
5from moviepy.editor import *
6from glob import glob
7from mutagen.mp3 import EasyMP3
8import sys
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 sorted(glob("*." + (sys.argv[1] if len(sys.argv) > 1 else "mp3"))):
17 data = EasyMP3(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