def test_can_extract_thumbnail(self): manager = VideoManager( os.path.join(os.path.dirname(__file__), "input", "test2.mp4"), ) _, thumbnail = tempfile.mkstemp(".jpg") extracted_thumbnail = manager.extract_thumbnail(thumbnail) self.assertEqual(thumbnail, extracted_thumbnail) self.assertTrue(os.path.exists(extracted_thumbnail)) os.remove(thumbnail)
def main(): logger = logging.getLogger() logger.info("start processing %s", input_file) manager = VideoManager(input_file) audio = manager.extract_audio(settings.ROOT / "output/a.wav") thumbnail = manager.extract_thumbnail(settings.ROOT / "output/a.jpg") audio_manager = AudioManager(audio) transcriber = Transcriber(audio_manager) filter_sections = [] for transcribtion in transcriber.transcribe(): logger.debug("transcription: %s", transcribtion) word, start, end = transcribtion if detect_mature_word(word): logger.debug("mature word: %s, %s", word, detect_mature_word(word)) audio_manager.apply_beep(start, end) manager.apply_mask(start, end) filter_sections.append({ "start_time": start, "end_time": end, "word": word }) manager.apply_audio(audio_manager.save(settings.ROOT / "output/a_beep.wav")) manager.save(settings.ROOT / "output/a.mp4") print( json.dumps({ "thumbnail": str(thumbnail), "filter_sections": filter_sections, "filter_video": str(settings.ROOT / "output" / "a.mp4"), }))