from IPython.display import HTML
HTML(""" """)
from moviepy.editor import *
import os
import re # to parse this file to make the credits
W, H = 720, 404 # dimensions of the final video
# These very useful functions resize the clips to
# the dimensions of the final video
VideoFileClip.reW = lambda clip : clip.resize(width=W)
VideoFileClip.reH = lambda clip : clip.resize(height=H)
theCupSong = TextClip('The Cup Song\nYoutube Covers Mix',
fontsize=50,
font="Ubuntu-Regular",
color = 'white')\
.set_pos(('center', 0.24*H))
editedby = TextClip('Edited by A. de Lamarmotte',
fontsize=28,
font="Ubuntu-Regular",
color = 'gray')\
.set_pos(('center', 0.58*H))
titleScreen = CompositeVideoClip([theCupSong, editedby],
size = (W,H))\
.set_duration(3)\
.fadeout(0.5)
kara = VideoFileClip("./girl_acapella/xkaraxmusicx.mp4")
kid = VideoFileClip("./male/DrewMannMusic.mp4")
talia = VideoFileClip("./girl_acapella/taliajoy18.mp4")
jencar = VideoFileClip("./male/hoorahjencar.mp4")
riley = VideoFileClip("./girl_acapella/hoosierfamily.mp4")
clown = VideoFileClip("./girl_acapella/salvadorzepeda68.mp4")
nicoleKim = VideoFileClip("./girl_acapella/NicoleKim.mp4")
kara_p = ( kara.subclip(0.55,4.45)
.reW()
.crop(y2=H)
.fadein(0.5) )
kid_p= ( kid.subclip(1.35,1.85)
.crop(x1=44, x2=-45)
.reH()
.set_pos('left')
.margin( right=2, color=3*[255])
.volumex(1.5) )
talia_p = (talia.subclip(3.53,4)
.reH()
.crop(x1=22, x2=-22)
.set_pos((kid_p.w-2,0))
.margin( right=2, left=2, color=3*[255]) )
jencar_p = ( jencar.subclip(1.79,2.23)
.crop( x1=241, x2=-242)
.reH()
.margin(right=2, left=2, color=3*[255])
.set_pos(( kid_p.w + talia_p.w-4 ,0))
.volumex(0.7) )
riley_p = (riley.subclip(9.25,9.75)
.crop( x1=20, x2=-47)
.reH()
.margin(left=2, color=3*[255])
.set_pos((jencar_p.w + kid_p.w + talia_p.w-6,0)) )
clown_p = (clown.subclip(6.6,7.1)
.crop( x1=410, x2=-550)
.reH()
.margin(left=2, right=2, color=3*[255]))
clown_p = clown_p.set_pos((riley_p.pos(0)[0] - clown_p.w+2,0))
nicoleKim_p = ( nicoleKim.subclip(7.4,8.0)
.reH()
.crop( x1=280,x2=280+W/4 )
.margin( left=2, right=2, color=3*[255])
.set_pos((W/4,0)) )
d = 0.52
cc = CompositeVideoClip([
kid_p,
talia_p.set_start(d+.01),
jencar_p.set_start(2*d+.00),
nicoleKim_p.set_start(5*d),
clown_p.set_start(4*d),
riley_p.set_start(3*d-.01)],
size=(W,H))
first_rythm = concatenate([kara_p, cc])
anna = VideoFileClip("./girl_acapella/Anna Burden.mp4")
malia = VideoFileClip("./girl_acapella/MaliaRogersMusic.mp4")
halie = VideoFileClip("./girl_acapella/Halie Ranee.mp4")
cooper = VideoFileClip("./girl_acapella/eveecooper.flv")
speedstack = VideoFileClip("./girl_acapella/theaterobsession101.mp4")
faraz = VideoFileClip("./male/Faraz Sabir.mp4")
amyspants = VideoFileClip("./amyspants.mp4")
miriam = VideoFileClip("./girl_acapella/Miriam Carone.mp4")
kristina = VideoFileClip("./girl_acapella/Kristina G.mp4")
irene = VideoFileClip("./girl_acapella/Irene Poon.mp4")
two_little_girls = VideoFileClip("./duet/MuggleSam.mp4")
school_choir_PS22 = VideoFileClip("./choir/PS22 Chorus.mp4")
piano = VideoFileClip("./instrumental/Jasper Tan.mp4")
shae = VideoFileClip("./uke_guitar_song/McKenna Shae.mp4")
from scipy.interpolate import interp1d
# These complicated interpolation define the movement of the clip
anna1 = interp1d([-1,1.0,2,8.1,8.8,11.0,11.4,22],
[190,190,112,112,190,190,170,170])
anna2 = interp1d([-1,1.0,2,8.1,8.8,11.0,11.4,22],
[190+W/4,190+W/4,112+W/2,112+W/2,
190+W/4,190+W/4,170+W/3,170+W/3])
anna_p = (anna
.subclip(8)
.reH()
.fl(lambda gf,t: gf(t)[:,int(anna1(t)):int(anna2(t))])
.volumex(1.2)
.set_duration(18)
.set_pos(lambda t:("left" if (t<11.0) else
min(480,1000*(t-11.0)),0)))
malia_p = (malia
.reH()
.subclip(17.18)
.crop(x1=185,x2=185+W/2)
.margin(left=3,color= (255,255,255))
.set_pos("right")
.volumex(0.8)
.set_start(anna_p.start+ 4.65)
.set_end(anna_p.start+8.8))
cooper_p = (cooper.crop(y1=50)
.reH()
.crop(x1=304, x2 = 304+W/4)
.margin(left=1,right=1,color=3*[255])
.subclip(13.65)
.volumex(0.6)
.set_start(anna_p.start+8.1)
.set_end(anna_p.start+10.3))
ww = cooper_p.w
cooper_p = cooper_p.set_pos(lambda t:(W-2*ww,min(0,1000*t-H)))
halie_p = (halie.subclip(15.6)
.reH()
.crop(x1=258, x2 = 258+W/4)
.margin(left=1,right=1,color=3*[255])
.volumex(0.6)
.set_start(anna_p.start+8.1)
.set_end(anna_p.start+10.3)
.set_pos(lambda t:(W-3*ww,max(0,H-1000*t))))
speed_stack_p = (speedstack.subclip(35.27)
.reH()
.crop(x1=160, x2 = 160+W/4)
.margin(left=1,color=3*[255])
.volumex(0.6)
.set_start(anna_p.start+8.1)
.set_end(anna_p.start+10.3)
.set_pos(lambda t:(W-ww,max(0,H-1000*t))))
faraz_p = (faraz.subclip(25.9)
.reH()
.crop( x1=100, x2=100+3*W/4)
.fl(lambda gf, t: gf(t)[:,(0 if (t<0.9) else
int(1000*(t-0.9))):])
.fadeout(0.2)
.crossfadein(0.2)
.volumex(2.4)
.set_start(anna_p.start+10.1)
.set_end(anna_p.start+11.6)
.audio_fadeout(0.1)
.set_pos('right'))
amyspants_p = (amyspants
.subclip(19.4,22)
.margin(12,color=(255,255,255))
.resize( width=2*W/3-20)
.set_pos((10,'center'))
.fadein( 0.5)
.fadeout( 0.5)
.audio_fadein(0.3)
.set_start(anna_p.start+12.29))
shae_p = (shae
.subclip(25.6)
.reH()
.crop(x1=240, x2 = 240+W/3)
.margin(right=3, color=(255,255,255))
.audio_fadein(0.7)
.volumex(0.6)
.set_start(anna_p.start+16.1)
.set_end(anna_p.start+22)
.audio_fadeout(0.3)
.set_pos(lambda t:(min(240,-240+1000*t),0)) )
two_little_girls_p = (two_little_girls
.subclip(34.25)
.reH()
.crop(x1=170, x2=170+360+60)
.margin( right=2, color=(255,255,255))
.set_start(anna_p.start+14.9)
.set_end(anna_p.start+23.5)
.audio_fadeout(0.5)
.set_pos( lambda t:( -180 if t<5.3 else
min(0,-150+500*(t-5.3)),0)))
school_choir_PS22_p = (school_choir_PS22
.reH()
.volumex(0.3)
.subclip(29.6)
.crop(x1=140, x2=140+W/2)
.set_start(anna_p.start+16.24)
.set_end(anna_p.start+24.5)
.audio_fadeout(0.5)
.margin(left=3,color=(255,255,255))
.crossfadein( 2)
.fadeout(0.5)
.set_pos(lambda t:(W-240 if t<4 else
max(W/2,W-240-500*(t-4)),0)) )
### PIANO
piano_p = (piano
.subclip(43,53.1)
.reW()
.set_pos("bottom")
.crop(y1=145,y2=278)
.margin(top=2,color=(255,255,255))
.crossfadein(1)
.audio_fadeout(0.8)
.audio_fadeout(0.8)
.volumex(.7)
.set_start(anna_p.start+22.2) )
miriam_p = (miriam
.subclip(25.8,31)
.resize(height=H-piano_p.h)
.volumex(0.8)
.crop( x1=120,x2=120+W/3)
.margin( right=2, color=3*[255])
.crossfadein(0.3)
.set_start(piano_p.start + 1.55)
.set_end(piano_p.start + 5.65)
.audio_fadeout(0.4)
.fadeout(.2)
.set_pos(('left','top')) )
kristina_p = (kristina
.subclip(33.20)
.resize(height=H-piano_p.h)
.volumex(0.8)
.crop(x1=110,x2=110+W/3)
.margin(left=2, color=3*[255])
.crossfadein(0.3)
.set_start(piano_p.start + 3.53)
.set_end(piano_p.start + 5.65)
.audio_fadeout(0.4)
.fadeout(.3)
.set_pos(('center','top')))
irene_p = (irene
.subclip(39.4,43.5)
.resize( height=H-piano_p.h)
.crop( x1=70,x2=70+W/3)
.margin( left=2, color=3*[255])
.set_start(piano_p.start + 5.80)
.crossfadein(0.3)
.fadeout(.3)
.set_pos(('right','top')) )
first_verse = CompositeVideoClip([
faraz_p, # not chronological, but must be under every other video
anna_p,
malia_p,
halie_p, speed_stack_p, cooper_p,
amyspants_p,
shae_p,
two_little_girls_p,
school_choir_PS22_p,
piano_p,
miriam_p, kristina_p, irene_p],
size=(W,H))
#final.subclip(15,27).audio.to_audiofile("test.ogg")
#final.show(10)
rainbelle = VideoFileClip("./duet/rainbelle99.mp4")
cup_kids = VideoFileClip("./trio/patmartel100.mp4")
girls_complex = VideoFileClip("./cup_only/gimmiebeanstheband.mp4")
cantina_band = VideoFileClip("./choir/SMCdramaclub .mp4")
allSheKnows = VideoFileClip('./male/AllSheKnows.mp4')
harvard = VideoFileClip('./cup_only/HarvardTHUD.mp4')
rsnmusik = VideoFileClip("./cup_only/RSNmusik.mp4")
rainbelle_p = (rainbelle.subclip(7.1,10.55)
.reW()
.crop(y2=H)
.fadein(.15)
.volumex(0.6) )
cup_kids_p = (cup_kids.subclip(278.80,279.20)
.reH()
.audio_fadein(0.1) )
harvard_p = (harvard.subclip(17.90,18.34)
.reW()
.crop(y2=H))
cantina_band_p = (cantina_band.subclip(25.25,25.6)
.reH()
.audio_fadein(0.1) )
allSheKnows_p = (allSheKnows.subclip(35.20,35.97)
.reH())
girls_complex_p = (girls_complex.subclip(32.00,32.78)
.reH())
rsnmusik_p = (rsnmusik
.subclip(20.16,20.66)
.volumex(0.6)
.reW()
.crop(y2=220) )
inter_rythm = concatenate([
rainbelle_p,
cup_kids_p,
harvard_p,
cantina_band_p,
allSheKnows_p,
girls_complex_p,
rsnmusik_p])
#inter_rythm.audio.preview()
#inter_rythm.to_videofile('test.mp4', bitrate='6000k')
until_inter_rythm = concatenate(
[titleScreen,
first_rythm,
first_verse,
inter_rythm])
original_lulu = VideoFileClip("./duet/Lulapinga.mp4")
ally_turner = VideoFileClip("./girl_acapella/Ally Turner.mp4")
daiyan = VideoFileClip("./girl_acapella/Daiyan Trisha.mp4")
sita_lizzie = VideoFileClip("./duet/Sita Lizzie.mp4")
jocelyne = VideoFileClip("./duet/Jocelyne Van Den Meersche.mp4")
amanda = VideoFileClip("./girl_acapella/amandayanggg.mp4")
people_mountain = VideoFileClip("./choir/Camp Kulin.mp4")
duo_alaska = VideoFileClip("./duet/Satrina Lord.mp4")
steph = VideoFileClip("./girl_acapella/stephulahoops.mp4")
katrina = VideoFileClip("./uke_guitar_song/katrinamelody.mp4")
choir_black_cloths = VideoFileClip("./choir/Genesee Noelani.mp4")
txt = TextClip('The original cup song',
font='Ubuntu-Bold',
fontsize=22)
txt_original_cupsong = (txt
.on_color(size=(txt.w+6, txt.h + 6),
color=3*[255])
.margin(1)
.margin( bottom=30,right=30, opacity=0.0)
.set_pos(('right','bottom'))
.set_duration(1.5) )
txt_original_cupsong.show()
original_lulu_p = (original_lulu.subclip(50,56.7)
.reH()
.set_pos('center')
.set_end(5.6)
.audio_fadeout(0.2))
ally_turner_p = (ally_turner.subclip(45.5,47.5)
.crop( x1 = 400, x2= 950)
.resize( height=0.45*H)
.margin( 2, color=3*[255])
.margin(right=20, opacity=0)
.set_pos(('right','center'))
.set_start(1.8))
wby,hby= ally_turner_p.size
ally_turner_p.pos = lambda t: (W-wby-20,'center')
daiyan_p = (daiyan.subclip((1,31),(1,33))
.crop( x1 = 117, x2= 362)
.resize(height=0.45*H)
.margin(2, color=3*[255])
.margin(left=20, opacity=0)
.set_pos(('left','center'))
.set_start(1.8) )
from scipy.interpolate import interp1d
sita_lizzie_p= ( sita_lizzie.subclip(51.2,55.4)
.reW()
.audio_fadein(0.2)
.crop( x1 = 38, x2=-82, y1=21,y2=358)
.resize( height =0.33*H)
.margin( 2, color=3*[255])
.set_start(3.8)
.set_end(6.7)
.crossfadeout(1) )
wgsv,hgsv = sita_lizzie_p.size
itr_gsv = interp1d([-1,0,0.2,10],
[W/2 - wgsv/2,W/2 - wgsv/2, W-wgsv-10, W-wgsv-10 ])
sita_lizzie_p.pos = lambda t: (itr_gsv(t),H/2)# H-hgsv-10)
jocelyne_p = (jocelyne.subclip(44.95)
.crop(x1=85, x2=598, y1=27, y2=315)
.resize( height=0.33*H)
.margin( 2, color=3*[255])
.set_start(1.8)
.set_end(6.7)
.crossfadeout(1)
.volumex(0.4)
.audio_fadein(0.2))
w_joc, h_joc = jocelyne_p.size
itr_joc = interp1d([-1,2,2.2,10],
[W/2 - w_joc/2,W/2 - w_joc/2, 10, 10])
jocelyne_p.pos = lambda t: (itr_joc(t),H/2)
d = 2.5
amanda_p= (amanda.subclip(51.0,59)
.crop( x1=50, x2 = 50+W/2)
.resize( width=140)
.margin( 2, color=3*[255])
.crossfadein(0.2)
.margin( right=10,top=10,opacity=0)
.set_pos(('right','top'))
.volumex(1.3)
.audio_fadein(2)
.set_start(5.5) )
people_mountain_p = ( people_mountain.subclip(49.9,51)
.reW()
.volumex(1.5)
.set_start(6.7))
duo_alaska_p = (duo_alaska.subclip(56.5,57.5)
.reW()
.crop(y1=-H)
.volumex(1.2)
.set_pos('center')
.set_start(7.35))
katrina_p = ( katrina.subclip(38.15+d,58)
.crop( x1=138, x2=342)
.reH()
.margin( right=2, color=3*[255])
.audio_fadein( 0.1)
.set_pos('left')
.set_start(amanda_p.start + d)
.set_end(13.53)
.audio_fadeout(.1))
steph_p = (steph.subclip(52.85+d,59)
.reH()
.crop( x1=150, x2=150+W-katrina_p.w)
.margin( left=2, color=3*[255])
.volumex( 1.8)
.set_pos('right')
.set_start(katrina_p.start)
.set_end(10.5)
.audio_fadein( 0.5)
.audio_fadeout( 0.5) )
choir_black_cloths_p = (choir_black_cloths
.subclip((1,38.1),(1,43))
.reH()
.crop( x2= W-katrina_p.w)
.volumex(0.5)
.audio_fadein(0.5)
.crossfadein(0.5)
.set_pos('right')
.set_start(10.0)
.set_end(13.6)
.audio_fadeout(1))
second_verse = CompositeVideoClip([
original_lulu_p,
txt_original_cupsong,
ally_turner_p,
daiyan_p,
jocelyne_p,
people_mountain_p,
duo_alaska_p,
sita_lizzie_p,
steph_p,
choir_black_cloths_p,
katrina_p,
amanda_p ],
size = (W,H))
second_verse_start = until_inter_rythm.duration -.14
until_second_verse = CompositeVideoClip(
[until_inter_rythm,
second_verse.set_start(second_verse_start)])
#until_second_verse.audio.subclip(start-4, start+4).preview()
hannah_elless = VideoFileClip("./trio/Hannah Elless.mp4")
# First of three
marj = VideoFileClip("./girl_acapella/Marjorie Reboul.mp4")
thomas = VideoFileClip("./male/Thomas Graff.mp4")
camshie = VideoFileClip("./trio/Camshie Tejada.mp4")
# Second of three
raRaRileyStraw = VideoFileClip("./male/RaRaRileyStraw.mp4")
kira_mackenzie = VideoFileClip("./duet/Kira Pleska and Mackenzie Ziegler.mp4")
rachel = VideoFileClip("./duet/Rachel Nheu.mp4")
bass = VideoFileClip("./instrumental/Ankadiov Subran.mp4")
violin_guitar = VideoFileClip("./instrumental/David Wong.mp4")
flute = VideoFileClip("./instrumental/Laura Mew.mp4")
clarinet = VideoFileClip("./instrumental/clANAnett.mp4")
katie = VideoFileClip("./girl_acapella/Katie Floyd.mp4")
allyPaige = VideoFileClip("./girl_acapella/AllyyyPaige.mp4")
camryn = VideoFileClip("./girl_acapella/Camryn Harder.mp4")
richard = VideoFileClip("./male/Richard Beilfuss.mp4")
haven = VideoFileClip("./uke_guitar_song/Scott Slay.mp4")
lizzie = VideoFileClip("./ASL/lizzieejudee.mp4")
nicole = VideoFileClip("./uke_guitar_song/Nicole Zhang.mp4")
M = 20
B = 45
hannah_elless_p = (hannah_elless.subclip(79.31,91.00)
.crop(y1=40,y2=-30,x1=50, x2=-50)
.resize(width=.4*W)
.fadein(1)
.audio_fadein(.1)
.audio_fadeout(.1)
.margin(1, color=3*[255])
.margin(right=B, bottom=M, opacity=0)
.set_pos(('right', 'bottom')))
# ==================
marj_p = (marj
.subclip(5.9,7.4)
.resize(width= .4*W)
.margin(1, color=3*[255])
.margin(left=B, top=M, opacity=0)
.set_pos(('left', 'top')))
thomas_p = ( thomas.subclip(0.6)
.set_duration(marj_p.duration)
.resize(width=.4*W)
.crop(y2=-1, height = hannah_elless_p.h-M)
.margin(1, color=3*[255])
.margin(left=B, bottom=M, opacity=0)
.set_pos(('left', 'bottom'))
.audio_fadein(.1)
.audio_fadeout(.1))
camshie_p = (camshie.subclip(5.2)
.set_duration(marj_p.duration)
.resize(width= .4*W)
#.crop(y1= -marj_p.h-50, height=marj_p.h-M)
.margin(1, color=3*[255])
.margin(right=B, top=M, opacity=0)
.set_pos(('right', 'top')))
# ==================
rachel_p = (rachel.subclip(5.85,7.65)
.resize(width=.4*W)
.margin(1, color=3*[255])
.margin(right=B, top=M, opacity=0)
.set_pos(('right', 'top'))
.audio_fadein(.1))
kira_mackenzie_p = (kira_mackenzie.subclip(45.9, 50)
.crop(x2=-50)
.resize(width=.4*W)
.crop(y2=-10, height = rachel_p.h-M)
.margin(1, color=3*[255])
.margin(left=B, top=M, opacity=0)
.audio_fadein(.1)
.crossfadeout(.5)
.set_pos(('left', 'top'))
.audio_fadeout(.1))
raRaRileyStraw_p = (raRaRileyStraw.subclip(10.35)
.set_duration(rachel_p.duration)
.resize(width=.4*W)
.crop(y1=10, height = hannah_elless_p.h-M)
.margin(1, color=3*[255])
.margin(left=B, bottom=M, opacity=0)
.set_pos(('left', 'bottom'))
.audio_fadein(.1)
.audio_fadeout(.1))
af_start=17
Hbottom = 3*H/5+2
M = 20
violin_guitar_p = ( violin_guitar.subclip(30.25,37)
.crop(y1=100)
.resize( height=Hbottom)
.crop(x1=0, width=2.0*W/3)
.volumex(1.5)
#.subfx(lambda cl: cl.crop(x1=0, width=W/3),0,.9 )
.margin( right=2, bottom=2, color=3*[255])
.set_pos(('left','top'))
.set_start(12.8)
.audio_fadein(.1)
.audio_fadeout(.5))
T_bass=1.2
bass_p = ( bass.subclip((1,8.95-T_bass),(1,16.5))
.crop(x1=92, x2=-80)
.audio_fadeout(.05)
.volumex(1.0)
.resize(width = 2.0*W/7)
.margin( top=2, right=2, color=3*[255] )
.set_pos(('left',Hbottom)) )
clarinet_p = ( clarinet.subclip(25.9,31)
.volumex( 0.5)
.crop( x1=73, x2=-101)
.resize( width=2.0*W/7-1)
.margin( top=2, left=2, color=3*[255])
.set_pos(('right', Hbottom))
.set_start(13.8))
print clarinet_p.h
flute_p = ( flute.subclip(22.35)
.reH()
.set_duration(violin_guitar_p.duration)
.audio_fadeout(1)
.volumex( 1.3)
.resize(width=3.0*W/7)
.margin(top=2, color=3*[255])
.set_pos(('center',Hbottom))
.set_start(13.8))
katie_p = ( katie.subclip(23.1,27)
.volumex(1.6)
.audio_fadein(.1)
.resize(height=Hbottom)
.crop( x1=10, x2=10+W/3)
.margin(left=2, color=3*[255])
.set_pos(('right','top')))
allyPaige_p = ( allyPaige.subclip(31.35,37.8)
.audio_fadeout(1)
.crop(x1=70, x2=-300, y1=50)
.resize( height=Hbottom)
.crop( x1=75, width=W/3)
.margin(left=2, right=2, color=3*[255])
.set_pos((W/3,'top')))
camryn_p = ( camryn.subclip(26.45,29.4)
.crop(x1=300, x2=-300, y2=-100)
.resize(height=Hbottom)
.crop(x1=10, width=W/3)
.margin(left=2, color=3*[255])
.set_pos(('right', 'top')))
richard_p = (richard.subclip((1,13.05),(1,16.5))
.audio_fadein(.1)
.audio_fadeout(.5)
.crop(y1=45,x1=70)
.resize(width = clarinet_p.w)
.margin(top=2, left=2, color=3*[255])
.set_pos(('right',Hbottom))
.volumex(2.5) )
haven_p = ( haven.subclip((1,54.65))
.reH()
.volumex(.5)
.audio_fadein(.8)
.resize(width=0.4*W)
.margin(1, color=3*[255])
.margin(right=40, opacity=0)
.set_pos(('right','center')) )
lizzie_p = (lizzie.subclip((1,29.3),(1,34.5))
.set_audio(None)
.resize(width=.4*W)
.margin(1, color=3*[255])
.margin(left=40, opacity=0)
.set_pos(('left','center'))
.fadein(1)
.fadeout(.5))
nicole_p = (nicole.subclip(36.9,-.1)
.crop(y1=50)
.resize(width=.4*W)
.volumex(2)
.audio_fadein(.2)
.fadein(.5)
.margin(1, color=3*[255])
.margin(left=40, opacity=0)
.fadeout(.1)
.set_pos(('left','center')))
he_start = second_verse_start + 10.45
d1 = 3.5 # clap clap 1
d2 = 6.9 # clap clap 2
d = he_start+ 10.28 # start_orchestra
dstop = d+7.5 # stop_orchestra
until_last_chorus = CompositeVideoClip([
until_second_verse,
hannah_elless_p.set_start(he_start-.45),
marj_p.set_start(he_start+d1),
camshie_p.set_start(he_start+d1),
thomas_p.set_start(he_start+d1),
raRaRileyStraw_p.set_start(he_start+d2),
rachel_p.set_start(he_start+d2),
violin_guitar_p.set_start(d).set_end(dstop),
kira_mackenzie_p.set_start(he_start+d2),
flute_p.set_start(d).set_end(dstop),
clarinet_p.set_start(d),
katie_p.set_start(d),
bass_p.set_start(d-T_bass).set_end(dstop),
allyPaige_p.set_start(d+1.5).set_end(dstop),
richard_p.set_start(d+4.0).set_end(dstop),
camryn_p.set_start(d+4.0).set_end(dstop),
haven_p.set_start(d+5.75),
lizzie_p.set_start(dstop+.5),
nicole_p.set_start(d+13.8)
])
#until_last_chorus.to_videofile('test_ulc.mp4',fps=5)
import re
import os
from moviepy.editor import *
def chunks(l, n):
"""
Yield successive n-sized chunks from l.
"""
for i in range(0, len(l), n):
yield l[i:i+n]
andrew_foy = VideoFileClip("./instrumental/Andrew Foy.mp4")
jenni_saslove = VideoFileClip("./girl_acapella/Jenni Saslove.mp4")
brie_monetti = VideoFileClip("./uke_guitar_song/Brie Monetti.mp4")
jenna_lynn = VideoFileClip("./uke_guitar_song/Jenna Lynn.mp4")
tiffany = VideoFileClip("./uke_guitar_song/Tiffany Cicio.mp4")
# We open THIS notebook !
with open('./CupSongsCovers.ipynb','r') as f:
lines = f.readlines()
files = [re.search("VideoFileClip\((.*)\)", l) for l in lines]
files = [f.groups()[0][1:-1] for f in files if f is not None]
names = [os.path.splitext(os.path.basename(f))[0] for f in files]
print ', '.join(names)
D=1.72
txt_end = (TextClip("Original Cup Song written by\n"
"Lulu and the Lampshades",
fontsize=30, interline=15,
bg_color='black',
font="Ubuntu-Regular",
size=(W,H), color = 'white')
.set_pos(('center', 'center'))
.set_duration(3)
.fadein(1)
.fadeout(1)
.fx(vfx.freeze_at_start, 1))
txt0 = (TextClip("Youtubers by order\nof appearance:",
fontsize=30, interline=15,
bg_color='black',
font="Ubuntu-Regular",
size=(W,H), color = 'white')
.set_duration(3)
.fadein(1)
.fadeout(1)
.fx(vfx.freeze_at_start, 1))
txts = [TextClip("\n".join(nn),
fontsize=30,
font="Ubuntu-Regular",
color = 'white', interline=9)
.set_pos(('center', 'center'))
.fadein(.3)
.set_start(D*(i))
.set_duration(D)
.fadeout(.3)
for i,nn in enumerate(chunks(names,7))]
W2 = 2*W/7
end_time=19
andrew_foy_p = (andrew_foy
.resize(width=W2)
.margin(1, color=3*[255])
.margin(left=10, bottom=10, opacity=0)
.set_pos(('left','bottom'))
.subclip(23)
.volumex(.6)
.audio_fadein(1)
.audio_fadeout(1))
brie_monetti_p = (brie_monetti
.crop(y2=300, x2=-150)
.resize(width=W2)
.margin(1, color=3*[255])
.margin(right=10, top=10, opacity=0)
.set_pos(('right','top'))
.subclip(47, 52)
.audio_fadein(.1))
jenni_saslove_p = (jenni_saslove
.resize(width=W2)
.margin(1, color=3*[255])
.margin(left=10, top=10, opacity=0)
.set_pos(('left','top'))
.subclip(24.5, 27.3)
.audio_fadein(.3))
jenna_lynn_p = (jenna_lynn.subclip(30.45, 34.5)
.resize(width=W2)
.margin(1, color=3*[255])
.margin(right=10, bottom=10, opacity=0)
.set_pos(('right','bottom'))
.audio_fadein(.1))
tiffany_p = (tiffany.subclip(40.5)
.resize(width=W2)
.margin(1, color=3*[255])
.margin(left=10, top=10, opacity=0)
.set_pos(('left','top'))
.audio_fadein(.2)
.volumex(.5)
.audio_fadein(.5)
.audio_fadeout(1))
af_start = 0
bm_start = af_start + 1
js_start = af_start + 5.3
mar_start = af_start + 3
kf_start = af_start + 8.8
tiff_start = af_start + 12.6
jl_start = af_start + 15.85
scott_start = af_start + 23.5
credits = (CompositeVideoClip(txts+[
andrew_foy_p.set_start(af_start),
brie_monetti_p.set_start(bm_start),
jenni_saslove_p.set_start(js_start),
jenna_lynn_p.set_start(kf_start),
tiffany_p.set_start(tiff_start)
],
size= (W,H))
.set_duration(17+af_start)
.fadein(1)
.fadeout(1)
.audio_fadeout(1)
.audio_fadeout(1))
len(names)
# made wit moviepy
mwm = ( ImageClip('logo_white.png')
.resize(width=0.6*W)
.on_color(size= [W,H], pos=('center',H/5)))
mwm_audio = (AudioFileClip("./cupspiano.wav")
.subclip(.2)
.audio_fadein(.5)
.audio_fadeout(.5))
grenoble = (TextClip("Grenoble, 2014",fontsize=25,
font="Amiri-Regular", color='gray')
.margin(right=20, bottom=10, opacity=0)
.set_pos(('right', 'bottom')))
mwm_grenoble = (CompositeVideoClip([mwm, grenoble])
.set_audio(mwm_audio)
.set_duration(mwm_audio.duration)
.fadein(1).fadeout(1))
credits_and_end = concatenate([txt_end, txt0,
credits,
mwm_grenoble])
#credits_and_end.to_videofile('testend.mp4', fps=25)
until_end = concatenate([until_last_chorus,
credits_and_end])
until_end.to_videofile("Cup_Song_Covers_Mix.mp4",
fps=25, bitrate="10000k",
audio_bitrate='500k')