Bläddra i källkod

[YoutubeDL] Disable newline conversion when writing subtitles

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.
Yen Chi Hsuan 9 år sedan
förälder
incheckning
b1927f4e8a
1 ändrade filer med 2 tillägg och 0 borttagningar
  1. 2 0
      youtube_dl/YoutubeDL.py

+ 2 - 0
youtube_dl/YoutubeDL.py

@@ -1603,6 +1603,8 @@ class YoutubeDL(object):
                         self.to_screen('[info] Video subtitle %s.%s is already_present' % (sub_lang, sub_format))
                         self.to_screen('[info] Video subtitle %s.%s is already_present' % (sub_lang, sub_format))
                     else:
                     else:
                         self.to_screen('[info] Writing video subtitles to: ' + sub_filename)
                         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:
                         with io.open(encodeFilename(sub_filename), 'w', encoding='utf-8', newline='') as subfile:
                             subfile.write(sub_data)
                             subfile.write(sub_data)
                 except (OSError, IOError):
                 except (OSError, IOError):