youtubedl-android icon indicating copy to clipboard operation
youtubedl-android copied to clipboard

Processing logs causes OutOfMemoryError when downloading long streams

Open JunkFood02 opened this issue 1 year ago • 0 comments

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

JunkFood02 avatar Oct 03 '23 23:10 JunkFood02