[YoutubeDL] Disable newline conversion when writing subtitles
authorYen Chi Hsuan <yan12125@gmail.com>
Thu, 11 Aug 2016 11:04:23 +0000 (19:04 +0800)
committerYen Chi Hsuan <yan12125@gmail.com>
Thu, 11 Aug 2016 11:04:23 +0000 (19:04 +0800)
By default io.open() convert all '\n' occurrences to '\r\n' when writing
files. If the content already contains '\r\n', it will be converted to
'\r\r\n', breaking some video players.

youtube_dl/YoutubeDL.py

index fd7577bb8032c40bd1f1a668ae4651d9fae946ef..e844dc98a5b3915070ffae079395233de7ed04f7 100755 (executable)
@@ -1603,6 +1603,8 @@ class YoutubeDL(object):
                         self.to_screen('[info] Video subtitle %s.%s is already_present' % (sub_lang, sub_format))
                     else:
                         self.to_screen('[info] Writing video subtitles to: ' + sub_filename)
+                        # Use newline='' to prevent conversion of newline characters
+                        # See https://github.com/rg3/youtube-dl/issues/10268
                         with io.open(encodeFilename(sub_filename), 'w', encoding='utf-8', newline='') as subfile:
                             subfile.write(sub_data)
                 except (OSError, IOError):