To expand on an earlier post “MacPorts / HomeBrew – Rip CD tracks from terminal” I have worked on two scripts; one for Mac and one for PC.
Both scripts (Bash and PowerShell) will run similar with predefined values that you’ll need to update for your own purposes (look at the highlighted lines).
First script is a Bash script specific for Mac OSX
#!/bin/sh
# Sermon.sh
#
#
# Created by David Kittell on 12/30/18.
#
# Install HomeBrew
#/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Install HomeBrew Packages
#brew install cdparanoia lame sox
#sudo port install cdparanoia lame sox
# Variables - Start
SermonDate=$1
if [ -z $SermonDate ]; then
dateFile=`date +%Y_%m_%d`
dateTitle=$(echo $dateFile | sed "s|_|-|g")
else
dateFile=$(echo $SermonDate | sed "s|-|_|g")
dateTitle=$SermonDate
fi
artist=$2
if [ -z $artist ]; then
artist="Greg Capsel"
fi
SermonsPath="/Users/dkittell/Desktop/Sermons"
album="Millington Church of God"
genre="Sermon"
trackimage="$SermonsPath/sermon.jpg"
comment="http://www.millingtonchurchofgod.com"
# Variables - Stop
# Display Output
echo "Extraction of audio from CD starting for $dateTitle"
# Extract Audio From CD
cdparanoia -B
# Eject CD
drutil eject
# Convert Wav To MP3
lame -b 64 track01.cdda.wav -o "Sermon_$dateFile.mp3" --ty "$year" --tl "$album" --ta "$artist" --tc "$comment" --tg "$genre" --tt "$dateTitle" --ti "$trackimage"
# Remove The Wav File
rm track01.cdda.wav
# Run for current date
sh Sermon.sh
# Run for specific date
sh Sermon.sh 2018-12-25
# Run for specific date and Artist/Speaker
sh Sermon.sh 2018-12-25 "Greg Capsel"
Second script is a PowerShell script specific for a Windows based computer
param
(
[datetime]$year = (Get-Date).year,
[datetime]$SermonDate = (Get-Date),
[string]$artist = "Greg Capsel"
)
$SermonDate
#choco uninstall eac -y
#choco install eac -y
#choco install cdex -y
#choco install lame -y
$dateFile = $SermonDate.ToString("yyyy_MM_dd")
$dateTitle = $SermonDate.ToString("yyyy-MM-dd")
$DesktopPath = [Environment]::GetFolderPath("Desktop")
$EACPath = "C:\Program Files (x86)\Exact Audio Copy"
#$CDEXPath = "C:\Program Files (x86)\CDex\"
$LAMEPath = "C:\ProgramData\chocolatey\lib\lame\tools\"
$album = "Millington Church of God"
$genre = "Sermon"
$trackimage = "$DesktopPath\Sermons\sermon.jpg"
$comment = "http://www.millingtonchurchofgod.com"
Set-Location "$EACPath"
.\EAC.exe
#cd "$CDEXPath"
#.\CDex.exe
function Pause ()
{
# Check if running Powershell ISE
if ($psISE)
{
Add-Type -AssemblyName System.Windows.Forms
$message = "Press the WAV button on the left side of EAC`n`nPlease click the OK button to continue"
[System.Windows.Forms.MessageBox]::Show("$message")
}
else
{
$message = "Press the WAV button on the left side of EAC`n`nPlease any key to continue"
Write-Host "$message" -ForegroundColor Yellow
$x = $host.ui.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
}
Pause
Get-Process EAC | ForEach-Object { $_.CloseMainWindow() | Out-Null } | Stop-Process –force
Set-Location $LAMEPath
.\lame.exe -b 64 """$DesktopPath\Sermons\*.wav""" -o """$DesktopPath\Sermons\Sermon_$(echo $dateFile).mp3""" --ty $year --tl "$album" --ta "$artist" --tc "$comment" --tg $genre --tt $dateTitle --ti $trackimage
Set-Location "$DesktopPath\Sermons"
try {
$Diskmaster = New-Object -ComObject IMAPI2.MsftDiscMaster2
$DiskRecorder = New-Object -ComObject IMAPI2.MsftDiscRecorder2
$DiskRecorder.InitializeDiscRecorder($DiskMaster)
$DiskRecorder.EjectMedia()
} catch {
Write-Error "Failed to operate the disk. Details : $_"
}
rm *.wav
# Run for current date
.\Sermon.ps1
# Run for specific date
.\Sermon.ps1 -SermonDate 2018-12-25
# Run for specific date and Artist/Speaker
.\Sermon.ps1 -SermonDate 2018-12-25 -artist "Greg Capsel"
Last Updated on April 9, 2023