youtubedl-android
youtubedl-android copied to clipboard
Processing logs causes OutOfMemoryError when downloading long streams
java.lang.OutOfMemoryError: Failed to allocate a 75497480 byte allocation with 73634792 free bytes and 70MB until OOM, target footprint 268435456, growth limit 268435456
at java.util.Arrays.copyOf(Arrays.java:3766)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:125)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:650)
at java.lang.StringBuilder.append(StringBuilder.java:203)
at com.yausername.youtubedl_android.StreamProcessExtractor.run(SourceFile:41)
Originally reported by a Seal user, who was trying to download a 3hrs live stream, a large number of logs got accumulated in a single string builder object, caused this error
Walkaround: pass -q
to yt-dlp to make sure it doesn't print log when downloading
A possible solution is to split strings to multiple chunks, but it might be complicated to refactor the current code base