Explorar el Código

[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 hace 9 años
padre
commit
b1927f4e8a
Se han modificado 1 ficheros con 2 adiciones y 0 borrados
  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):