from pathlib import Path
cd1=Path('/home/dl92/Music/cd#1')
cd2=Path('/home/dl92/Music/cd#2')Miris Chrismas list
from pydub import AudioSegment
for fname in cd1.glob('**/*.wav'):
song = AudioSegment.frfrom_wav(fname)
#print(fname.stem)
fname_mp3=fname.parent/'mp3'/f'{fname.stem}.mp3'
print(fname_mp3)
song.export(fname_mp3,format='mp3')--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) /home/ys/Data/projects/code/Python/Scripts/audioconversion.ipynb Cell 2 line 1 ----> <a href='vscode-notebook-cell:/home/ys/Data/projects/code/Python/Scripts/audioconversion.ipynb#W1sZmlsZQ%3D%3D?line=0'>1</a> from pydub import AudioSegment <a href='vscode-notebook-cell:/home/ys/Data/projects/code/Python/Scripts/audioconversion.ipynb#W1sZmlsZQ%3D%3D?line=2'>3</a> for fname in cd1.glob('**/*.wav'): <a href='vscode-notebook-cell:/home/ys/Data/projects/code/Python/Scripts/audioconversion.ipynb#W1sZmlsZQ%3D%3D?line=3'>4</a> song = AudioSegment.frfrom_wav(fname) ModuleNotFoundError: No module named 'pydub'
import pytube
from pytube import YouTube
#yt=YouTube('https://www.youtube.com/watch?v=M73x3O7dhmg')#philip glass
#yt=YouTube('https://www.youtube.com/watch?v=K3RjISiW7gA')#Reinhardt - The Best of Jazz Guitar (The Greatest Jazz Masterpieces) [Standard Jazz Tracks].
yt=YouTube('https://www.youtube.com/watch?v=Ty4isRlrrbg')
yt=YouTube('https://www.youtube.com/watch?v=G6kAmdzfvC8')
#yt.streaming_data
(print(yt.streams
#.filter(res='720p',mime_type='video/mp4')
.filter(progressive=True,mime_type='video/mp4')
)
#.desc()
)Running cells with 'General' requires the ipykernel package. Run the following command to install 'ipykernel' into the Python environment. Command: '/home/ys/Data/devtools/Envs/General/bin/python3.10 -m pip install ipykernel -U --force-reinstall'
from pytube import YouTube
import moviepy.editor as mp
from youtube_transcript_api import YouTubeTranscriptApi
def remove_timestamps(transcript):
"""
Removes timestamps from a transcript string.
Args:
transcript: A string containing the transcript with timestamps.
Returns:
A string containing the transcript without timestamps.
"""
clean_transcript = ""
for line in transcript.splitlines():
# Check if the line starts with a timestamp
if line.startswith("["):
# Split the line to separate the timestamp and text
timestamp, text = line.split("] ")
# Add only the text to the clean transcript
clean_transcript += text + "\n"
else:
# Add the entire line to the clean transcript
clean_transcript += line + "\n"
return clean_transcript.strip()
def convert_mp4_to_mp3(video_path):
"""
This function converts an MP4 video to an MP3 audio file.
Args:
video_path: The path to the MP4 video file.
audio_path: The path where you want to save the extracted MP3 audio file.
"""
try:
# Load the video file
video = mp.VideoFileClip(video_path)
bb=video_path.split('.')[0]
audio_path=f'{bb}.mp3'
# Extract the audio from the video and save it as an MP3 file
video.audio.write_audiofile(audio_path)
# Print a success message
print(f"Audio extracted and saved as: {audio_path}")
except Exception as e:
print(f"Error converting MP4 to MP3: {e}")
def download_mp4(video_url, output_path="video.mp4", resolution="720p"):
"""
Downloads an MP4 video from YouTube.
Args:
video_url: The URL of the YouTube video.
output_path: The path to save the downloaded video.
resolution: The resolution of the video to download (default: 720p).
"""
try:
# Get the YouTube object
yt = YouTube(video_url)
# Get video title and language
title = yt.title
print (title)
#lang = yt.captions.all().get('en').language_code
# Use youtube_transcript_api to retrieve transcript
transcript = YouTubeTranscriptApi.get_transcript(yt.video_id)
# Access transcript data
text = transcript[0]['text']
start_seconds = transcript[0]['start']
end_seconds = start_seconds+transcript[0]['duration']
# Print transcript information
print(f"Video title: {title}")
# Loop through each transcript segment and print text with timestamps
for segment in transcript:
start_seconds = segment['start']
end_seconds = start_seconds+segment['duration']
print(segment['text'])
#print(f"[{segment['start']} - {end_seconds}] {segment['text']}")
# Choose the video stream with the desired resolution
video_stream = yt.streams.filter(progressive=True, resolution=resolution).first()
# Download the video
video_stream.download(filename=output_path)
print(f"Video downloaded to: {output_path}")
except Exception as e:
print(f"Error downloading video: {e}")
# Example usage
#video_url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
#video_url ='https://www.youtube.com/watch?v=eNhJY-R3Gwg'
#download_mp4(video_url)
#convert_mp4_to_mp3('video.mp4')from pathlib import Path
from pytube import YouTube
import moviepy.editor as mp
from youtube_transcript_api import YouTubeTranscriptApi
from pathvalidate import sanitize_filepath
#print(oppath/'wav')
def convert_mp4_to_mp3(file,oppath):
try:
# Load the video file
#video = mp.VideoFileClip(file)
audio=mp.AudioFileClip(str(file))
stem=str(file.stem)#.replace.rstrip().lstrip()
audio_path=sanitize_filepath(oppath/'mp3'/f'{stem}.mp3')
print('audio_path', stem, audio_path)
# Extract the audio from the video and save it as an MP3 file
#video.audio.write_audiofile(audio_path, codec='pcm_s16le')
audio.write_audiofile(str(audio_path),write_logfile=True,verbose=True)#, codec='pcm_s16le')
# Print a success message
print(f"Audio extracted and saved as: {audio_path}")
except Exception as e:
print(f"Error converting MP4 to MP3: {e}")
def convert_mp4_to_wav(file,oppath):
try:
# Load the video file
#video = mp.VideoFileClip(file)
audio=mp.AudioFileClip(str(file))
stem=str(file.stem)#.replace.rstrip().lstrip()
audio_path=sanitize_filepath(oppath/'wav'/f'{stem}.wav')
print('audio_path', stem, audio_path)
# Extract the audio from the video and save it as an MP3 file
#video.audio.write_audiofile(audio_path, codec='pcm_s16le')
audio.write_audiofile(str(audio_path),codec='pcm_s16le',write_logfile=True,verbose=True)#, codec='pcm_s16le')
# Print a success message
print(f"Audio extracted and saved as: {audio_path}")
except Exception as e:
print(f"Error converting MP4 to MP3: {e}")
def download_mp4(video_url,oppath):
# Get the YouTube object
yt = YouTube(video_url)
# Get video title and language
title = yt.title
# print (title)
video_stream = yt.streams.filter(adaptive=True).order_by('abr')
# print(video_stream)
fname=sanitize_filepath(oppath/ f'{title}.mp4')
video_stream.last().download(filename=oppath/ f'{title}.mp4')
return fname
filteroption={
'resolution':'720p',
'mp4':True,
'audio':True,
'adaptive':False,
}
songs=[
'https://youtu.be/_HleLk2vTHY?si=eJsAXvUEkvhMwvlm',
'https://youtu.be/-hVB1Lv32dE?si=JAEptI4wSZ7sNHI4',
'https://youtu.be/RJQks-JWOXE?si=NJUYWipKfunf7-KI',
'https://youtu.be/YDxS20SsyHg?si=zDLn5_UlAMrU1vhA',
'https://youtu.be/srY3Y6r1-VY?si=nAPubWmZWiq7hjq1',
'https://youtu.be/BhUxb0henfw?si=kCR5dIuyxaMT2GD1'
'https://youtu.be/EAmqmSkOE68?si=KfamPtR2c4maXpQP',
'https://youtu.be/RK1V6T5YNpI?si=vuWocaC12es68raT',
'https://youtu.be/o9sS9y0UWZY?si=N_MVwMewolkYLlhN',
'https://youtu.be/1ewcPZ8-nX8?si=reKig_CIB7NBy-do',
'https://youtu.be/EIadKxo1ZBs?si=BcMX01vnYAJkjJYb',
'https://youtu.be/2zencBD3z68?si=dayfVeYawB-egqxP',
'https://youtu.be/drFWZ1-NQmE?si=cCoh3Is_nObNvOK5',
'https://youtu.be/NpIIwVj1ZFU?si=La7ump84_1O61sDT',
'https://youtu.be/iSF26HsmeRI?si=RAl9v4-a7qAQKD39'
]
songs_090324=[
'https://www.youtube.com/watch?v=cce9JqwPFkY',
'https://www.youtube.com/watch?v=I9Wqm1W5-4s',
'https://www.youtube.com/watch?v=ZW2xa__89p0',
'https://www.youtube.com/watch?v=fFjUyhd0zz4',
'https://www.youtube.com/watch?v=QXzC2eiHBG8',
'https://www.youtube.com/watch?v=L6fmdfQK3es',
'https://www.youtube.com/watch?v=9auVFKjZS7c',
'https://www.youtube.com/watch?v=PJo8F-L0HMs',
'https://www.youtube.com/watch?v=I6nqiTIKdL4',
'https://www.youtube.com/watch?v=TADxdahPBUA',
'https://www.youtube.com/watch?v=lrIKt5uDWZo'
]
songs_250324=[
'https://www.youtube.com/watch?v=UYCg6NBiXMI',
'https://www.youtube.com/watch?v=p9XrgGAafhc',
'https://www.youtube.com/watch?v=x5Oag4hISgU',
'https://www.youtube.com/watch?v=tHyHOUShOg8&t=16s',
'https://www.youtube.com/watch?v=S-u6qdeaPoE&t=229s',
'https://www.youtube.com/watch?v=9_qij2b9-Jg',
'https://www.youtube.com/watch?v=I9Wqm1W5-4s',
'https://www.youtube.com/watch?v=0SVaz8VWE84',
'https://www.youtube.com/watch?v=s7-GTShjcqY'
]
songs_180424=[
'https://www.youtube.com/watch?v=5ng1ypdkRIc',
'https://www.youtube.com/watch?v=TgBww5kmgmg',
'https://www.youtube.com/watch?v=t9wCMPCgeCk',
'https://www.youtube.com/watch?v=rpP2JjFKthU',
'https://www.youtube.com/watch?v=-H4umqfVoHk'
]
playlist=[
'https://www.youtube.com/watch?v=rknrt3tykH8&list=PL89GLpYyckZgglcqylKKyEdoUZ17drYAf&index=2'
]
def download_songlist(songs):
oppath=Path('/home/ys/Music/Miri/5_playlist')
for song in songs:
try:
file=download_mp4(song,oppath)
convert_mp4_to_mp3(file,oppath)
except Exception as e:
print(f"Error converting MP4 to MP3: {e}")
continue
download_songlist(songs_250324)audio_path Shawn Mendes - Stitches (Lyrics) /home/ys/Music/Miri/5_playlist/mp3/Shawn Mendes - Stitches (Lyrics).mp3
MoviePy - Writing audio in /home/ys/Music/Miri/5_playlist/mp3/Shawn Mendes - Stitches (Lyrics).mp3
MoviePy - Done.
Audio extracted and saved as: /home/ys/Music/Miri/5_playlist/mp3/Shawn Mendes - Stitches (Lyrics).mp3
audio_path DARKSIDE /home/ys/Music/Miri/5_playlist/mp3/DARKSIDE.mp3
MoviePy - Writing audio in /home/ys/Music/Miri/5_playlist/mp3/DARKSIDE.mp3
MoviePy - Done.
Audio extracted and saved as: /home/ys/Music/Miri/5_playlist/mp3/DARKSIDE.mp3
audio_path Rasputin /home/ys/Music/Miri/5_playlist/mp3/Rasputin.mp3
MoviePy - Writing audio in /home/ys/Music/Miri/5_playlist/mp3/Rasputin.mp3
MoviePy - Done.
Audio extracted and saved as: /home/ys/Music/Miri/5_playlist/mp3/Rasputin.mp3
audio_path Boney M - Daddy Cool (Original video) 1976 /home/ys/Music/Miri/5_playlist/mp3/Boney M - Daddy Cool (Original video) 1976.mp3
MoviePy - Writing audio in /home/ys/Music/Miri/5_playlist/mp3/Boney M - Daddy Cool (Original video) 1976.mp3
MoviePy - Done.
Audio extracted and saved as: /home/ys/Music/Miri/5_playlist/mp3/Boney M - Daddy Cool (Original video) 1976.mp3
audio_path Boney M. - Sunny (Official Video) [HD 1080p] /home/ys/Music/Miri/5_playlist/mp3/Boney M. - Sunny (Official Video) [HD 1080p].mp3
MoviePy - Writing audio in /home/ys/Music/Miri/5_playlist/mp3/Boney M. - Sunny (Official Video) [HD 1080p].mp3
MoviePy - Done.
Audio extracted and saved as: /home/ys/Music/Miri/5_playlist/mp3/Boney M. - Sunny (Official Video) [HD 1080p].mp3
Error converting MP4 to MP3: MoviePy error: the file /home/ys/Music/Miri/5_playlist/Charles & Eddie - Would I lie to you baby (Lyrics) BUGG Lyrics.mp4 could not be found!
Please check that you entered the correct path.
audio_path You /home/ys/Music/Miri/5_playlist/mp3/You.mp3
MoviePy - Writing audio in /home/ys/Music/Miri/5_playlist/mp3/You.mp3
MoviePy - Done.
Audio extracted and saved as: /home/ys/Music/Miri/5_playlist/mp3/You.mp3
audio_path People You Know (Official Lyrics) /home/ys/Music/Miri/5_playlist/mp3/People You Know (Official Lyrics).mp3
MoviePy - Writing audio in /home/ys/Music/Miri/5_playlist/mp3/People You Know (Official Lyrics).mp3
MoviePy - Done.
Audio extracted and saved as: /home/ys/Music/Miri/5_playlist/mp3/People You Know (Official Lyrics).mp3
audio_path DARKSIDE /home/ys/Music/Miri/5_playlist/mp3/DARKSIDE.mp3
MoviePy - Writing audio in /home/ys/Music/Miri/5_playlist/mp3/DARKSIDE.mp3
MoviePy - Done.
Audio extracted and saved as: /home/ys/Music/Miri/5_playlist/mp3/DARKSIDE.mp3
https://www.fatpick.com/blog?in=music-theory

#for i in range(40,88,1):
# guitar.play_note(i,1,0.2)Using preset Guitar Nylon X for guitar nylon
NOTES_FLAT = ['C', 'Db', 'D', 'Eb', 'E', 'F', 'Gb', 'G', 'Ab', 'A', 'Bb', 'B']
NOTES_SHARP = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B']
NOTES_FLAT=[str.lower(_) for _ in NOTES_FLAT]
NOTES_SHARP=[str.lower(_) for _ in NOTES_SHARP]
#def NoteToMidi_guitar(string, fret):
import pandas as pd
import numpy as np
from itertools import product
def NoteToMidi(KeyOctave):
# KeyOctave is formatted like 'C#3'
key = KeyOctave[:-1] # eg C, Db
octave = KeyOctave[-1] # eg 3, 4
answer = -1
try:
if 'b' in key:
pos = NOTES_FLAT.index(key)
else:
pos = NOTES_SHARP.index(key)
except:
print('The key is not valid', key)
return answer
answer += pos + 12 * (int(octave) + 1) + 1
return answer
def guitarToMidi(string,fret):
openstr={}
openstr[6]=40
openstr[5]=45
openstr[4]=50
openstr[3]=55
openstr[2]=59
openstr[1]=64
midi=openstr[string]+fret
notes=miditoGuitarNote_sharps.loc[midi,0]
notef=miditoGuitarNote_flats.loc[midi,0]
return midi,notes,notef
miditoGuitarNote_sharps=(pd.concat([pd.Series({NoteToMidi(f'{k}{o}'):f'{k}{o}' for o,k in product(range(0,7,1),NOTES_SHARP)}),
], axis=1
)
.assign(E=lambda df: np.where((df.index>=40) & (df.index<59),df[0],0),
A=lambda df: np.where((df.index>=45) & (df.index<64),df[0],0),
D=lambda df: np.where((df.index>=50) & (df.index<69),df[0],0),
G=lambda df: np.where((df.index>=55) & (df.index<74),df[0],0),
B=lambda df: np.where((df.index>=59) & (df.index<78),df[0],0),
e=lambda df: np.where((df.index>=64) & (df.index<83),df[0],0),
)
)
miditoGuitarNote_flats=(pd.concat([pd.Series({NoteToMidi(f'{k}{o}'):f'{k}{o}' for o,k in product(range(0,7,1),NOTES_FLAT)}),
], axis=1
)
.assign(E=lambda df: np.where((df.index>=40) & (df.index<59),df[0],0),
A=lambda df: np.where((df.index>=45) & (df.index<64),df[0],0),
D=lambda df: np.where((df.index>=50) & (df.index<69),df[0],0),
G=lambda df: np.where((df.index>=55) & (df.index<74),df[0],0),
B=lambda df: np.where((df.index>=59) & (df.index<78),df[0],0),
e=lambda df: np.where((df.index>=64) & (df.index<83),df[0],0),
)
)
#guitarToMidi(6,2)[0]
from scamp import *
s= Session() # (temp=100,)
#s.print_default_soundfont_presets()
guitar=s.new_part("guitar nylon")
#https://www.fatpick.com/blog/note-table
#http://scamp.marcevanstein.com/narrative/tutorial_videos.html
#
count=0
vol=0
#guitar.play_note(guitarToMidi(6,0)[0],1,5,blocking=False)
for string in reversed(range(1,7,1)):
for fret in range(0,5):
if (count%3==0):
vol=1
else:
vol=0.7
count+=1
guitar.play_note(guitarToMidi(string,fret)[0],vol,0.1)
#guitar.play_note(40,1,2)
#guitar.play_note(83,1,2)
#guitar.play_chord([70,73,83],1,2)
#guitar.play_note(52,1,5)
s.beat_lengthUsing preset Guitar Nylon X for guitar nylon
1.0
import abjad
string = "c'16 f' g' a' d' g' a' b' e' a' b' c'' f' b' c'' d''16"
voice_1 = abjad.Voice(string, name="Voice_1")
staff_1 = abjad.Staff([voice_1], name="Staff_1")
abjad.show(staff_1)