Report audio duration of each episode being processed
And, in new verbose mode, report when audio files are skipped (as they have been previously processed)
This commit is contained in:
parent
4587950623
commit
044e5bb921
|
@ -4,6 +4,7 @@ import sys
|
|||
isNumber = re.compile('^[0-9]+$')
|
||||
|
||||
class Options:
|
||||
verbose = False
|
||||
loadFeed = True
|
||||
downloadEpisodes = True
|
||||
generate = True
|
||||
|
@ -56,6 +57,8 @@ def read():
|
|||
opts.downloadEpisodes = False
|
||||
elif arg == "--no-gen" or arg == "--skip-gen":
|
||||
opts.generate = False
|
||||
elif arg == "--verbose":
|
||||
opts.verbose = True
|
||||
elif arg == 'new':
|
||||
opts.episodes = 'new'
|
||||
elif arg == 'old':
|
||||
|
|
14
lib/files.py
14
lib/files.py
|
@ -1,6 +1,7 @@
|
|||
import glob
|
||||
import re
|
||||
import lib.fetcher as fetcher
|
||||
import mutagen
|
||||
import os
|
||||
import os.path
|
||||
|
||||
|
@ -76,6 +77,19 @@ def saveEpisode(podcast, episode):
|
|||
def findAudio():
|
||||
return glob.glob('podcasts/*/*/*.m[4p][a3]')
|
||||
|
||||
def getAudioLength(audioFile):
|
||||
audio = mutagen.File(audioFile)
|
||||
totalLength = audio.info.length
|
||||
hours = int(totalLength // 3600)
|
||||
totalLength -= 3600 * hours
|
||||
minutes = int(totalLength // 60)
|
||||
totalLength -= 60 * minutes
|
||||
seconds = int(totalLength)
|
||||
if hours == 0:
|
||||
return f"{minutes}:{seconds}"
|
||||
else:
|
||||
return f"{hours}:{minutes}:{seconds}"
|
||||
|
||||
def getLangCode(audioFile):
|
||||
parts = audioFile.split('/')
|
||||
return parts[1]
|
||||
|
|
9
process
9
process
|
@ -22,11 +22,18 @@ if not options.generate:
|
|||
exit(0)
|
||||
audioFiles = files.findAudio()
|
||||
for audioFile in audioFiles:
|
||||
print(f"Audio: {audioFile}")
|
||||
audioLength = files.getAudioLength(audioFile)
|
||||
language = files.getLangCode(audioFile)
|
||||
skipped = True
|
||||
if not files.hasTranscript(audioFile):
|
||||
skipped = False
|
||||
print(f"Transcribing audio: {audioFile} ({audioLength})", flush=True)
|
||||
files.generateFromAudio(audioFile, 'transcribe')
|
||||
if language in config['translate'] and not files.hasTranslation(audioFile):
|
||||
skipped = False
|
||||
print(f"Translating audio: {audioFile} ({audioLength})", flush=True)
|
||||
files.generateFromAudio(audioFile, 'translate')
|
||||
if skipped and options.verbose:
|
||||
print(f"Skipped audio: {audioFile} ({audioLength})")
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue