From 9fa7bb61bcda565ea72e278b28af440254eb04b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Marqui=CC=81nez=20Ferra=CC=81ndiz?= Date: Tue, 21 Jul 2015 20:20:25 +0200 Subject: [PATCH] [downloader/common] Don't keep '.part' files for livestreams when 'Ctrl-C' is pressed Rename them to the original name and return True, allows to record and merge DASH livestreams --- youtube_dl/downloader/common.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/youtube_dl/downloader/common.py b/youtube_dl/downloader/common.py index 716e0cfa7..413bab380 100644 --- a/youtube_dl/downloader/common.py +++ b/youtube_dl/downloader/common.py @@ -347,7 +347,16 @@ class FileDownloader(object): self.to_screen('[download] Sleeping %s seconds...' % sleep_interval) time.sleep(sleep_interval) - return self.real_download(filename, info_dict) + try: + return self.real_download(filename, info_dict) + except (KeyboardInterrupt, StopDownload): + if info_dict.get('is_live'): + self.to_screen('[download] Stopping recording of livestream: {0}'.format(filename)) + tmpfilename = self.temp_name(filename) + if os.path.exists(encodeFilename(tmpfilename)): + self.try_rename(tmpfilename, filename) + return True + raise def real_download(self, filename, info_dict): """Real download process. Redefine in subclasses."""