diff --git a/app/src/main/java/com/yausername/youtubedl_android_example/CommandExampleActivity.java b/app/src/main/java/com/yausername/youtubedl_android_example/CommandExampleActivity.java
index 866b0b66..2e793c37 100644
--- a/app/src/main/java/com/yausername/youtubedl_android_example/CommandExampleActivity.java
+++ b/app/src/main/java/com/yausername/youtubedl_android_example/CommandExampleActivity.java
@@ -41,14 +41,14 @@ public class CommandExampleActivity extends AppCompatActivity implements View.On
     private ProgressBar pbLoading;
 
     private boolean running = false;
-    private CompositeDisposable compositeDisposable = new CompositeDisposable();
+    private final CompositeDisposable compositeDisposable = new CompositeDisposable();
 
-    private DownloadProgressCallback callback = new DownloadProgressCallback() {
+    private final DownloadProgressCallback callback = new DownloadProgressCallback() {
         @Override
-        public void onProgressUpdate(float progress, long etaInSeconds) {
+        public void onProgressUpdate(float progress, long etaInSeconds, String line) {
             runOnUiThread(() -> {
                         progressBar.setProgress((int) progress);
-                        tvCommandStatus.setText(String.valueOf(progress) + "% (ETA " + String.valueOf(etaInSeconds) + " seconds)");
+                        tvCommandStatus.setText(line);
                     }
             );
         }
diff --git a/app/src/main/java/com/yausername/youtubedl_android_example/DownloadingExampleActivity.java b/app/src/main/java/com/yausername/youtubedl_android_example/DownloadingExampleActivity.java
index 2dc6c1db..8c87a7fe 100644
--- a/app/src/main/java/com/yausername/youtubedl_android_example/DownloadingExampleActivity.java
+++ b/app/src/main/java/com/yausername/youtubedl_android_example/DownloadingExampleActivity.java
@@ -47,10 +47,10 @@ public class DownloadingExampleActivity extends AppCompatActivity implements Vie
 
     private final DownloadProgressCallback callback = new DownloadProgressCallback() {
         @Override
-        public void onProgressUpdate(float progress, long etaInSeconds) {
+        public void onProgressUpdate(float progress, long etaInSeconds, String line) {
             runOnUiThread(() -> {
                         progressBar.setProgress((int) progress);
-                        tvDownloadStatus.setText(String.valueOf(progress) + "% (ETA " + String.valueOf(etaInSeconds) + " seconds)");
+                        tvDownloadStatus.setText(line);
                     }
             );
         }
diff --git a/app/src/main/res/layout/activity_downloading_example.xml b/app/src/main/res/layout/activity_downloading_example.xml
index df52c02e..754f3a6c 100644
--- a/app/src/main/res/layout/activity_downloading_example.xml
+++ b/app/src/main/res/layout/activity_downloading_example.xml
@@ -63,7 +63,7 @@
             android:layout_height="wrap_content"
             android:layout_marginTop="30dp"
             android:text="@string/start"
-            android:textSize="20sp"
+            android:textSize="16sp"
             app:layout_constraintTop_toBottomOf="@+id/tv_command_scroller"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent" />
diff --git a/library/src/main/java/com/yausername/youtubedl_android/DownloadProgressCallback.java b/library/src/main/java/com/yausername/youtubedl_android/DownloadProgressCallback.java
index 52ead183..15b253c8 100644
--- a/library/src/main/java/com/yausername/youtubedl_android/DownloadProgressCallback.java
+++ b/library/src/main/java/com/yausername/youtubedl_android/DownloadProgressCallback.java
@@ -1,5 +1,5 @@
 package com.yausername.youtubedl_android;
 
 public interface DownloadProgressCallback {
-    void onProgressUpdate(float progress, long etaInSeconds);
+    void onProgressUpdate(float progress, long etaInSeconds, String line);
 }
diff --git a/library/src/main/java/com/yausername/youtubedl_android/StreamGobbler.java b/library/src/main/java/com/yausername/youtubedl_android/StreamGobbler.java
index 1407b6f4..9ca2fb6e 100644
--- a/library/src/main/java/com/yausername/youtubedl_android/StreamGobbler.java
+++ b/library/src/main/java/com/yausername/youtubedl_android/StreamGobbler.java
@@ -6,11 +6,12 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.StandardCharsets;
 
 class StreamGobbler extends Thread {
 
-    private InputStream stream;
-    private StringBuffer buffer;
+    private final InputStream stream;
+    private final StringBuffer buffer;
 
     private static final String TAG = "StreamGobbler";
 
@@ -22,7 +23,7 @@ public StreamGobbler(StringBuffer buffer, InputStream stream) {
 
     public void run() {
         try {
-            Reader in = new InputStreamReader(stream, "UTF-8");
+            Reader in = new InputStreamReader(stream, StandardCharsets.UTF_8);
             int nextChar;
             while ((nextChar = in.read()) != -1) {
                 this.buffer.append((char) nextChar);
diff --git a/library/src/main/java/com/yausername/youtubedl_android/StreamProcessExtractor.java b/library/src/main/java/com/yausername/youtubedl_android/StreamProcessExtractor.java
index 95c60e3c..9c93f9c5 100644
--- a/library/src/main/java/com/yausername/youtubedl_android/StreamProcessExtractor.java
+++ b/library/src/main/java/com/yausername/youtubedl_android/StreamProcessExtractor.java
@@ -6,6 +6,7 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.StandardCharsets;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -13,11 +14,11 @@ class StreamProcessExtractor extends Thread {
     private static final int GROUP_PERCENT = 1;
     private static final int GROUP_MINUTES = 2;
     private static final int GROUP_SECONDS = 3;
-    private InputStream stream;
-    private StringBuffer buffer;
+    private final InputStream stream;
+    private final StringBuffer buffer;
     private final DownloadProgressCallback callback;
 
-    private Pattern p = Pattern.compile("\\[download\\]\\s+(\\d+\\.\\d)% .* ETA (\\d+):(\\d+)");
+    private final Pattern p = Pattern.compile("\\[download\\]\\s+(\\d+\\.\\d)% .* ETA (\\d+):(\\d+)");
 
     private static final String TAG = "StreamProcessExtractor";
 
@@ -30,7 +31,7 @@ public StreamProcessExtractor(StringBuffer buffer, InputStream stream, DownloadP
 
     public void run() {
         try {
-            Reader in = new InputStreamReader(stream, "UTF-8");
+            Reader in = new InputStreamReader(stream, StandardCharsets.UTF_8);
             StringBuilder currentLine = new StringBuilder();
             int nextChar;
             while ((nextChar = in.read()) != -1) {
@@ -53,7 +54,7 @@ private void processOutputLine(String line) {
         if (m.matches()) {
             float progress = Float.parseFloat(m.group(GROUP_PERCENT));
             long eta = convertToSeconds(m.group(GROUP_MINUTES), m.group(GROUP_SECONDS));
-            callback.onProgressUpdate(progress, eta);
+            callback.onProgressUpdate(progress, eta, line);
         }
     }
 
diff --git a/library/src/main/res/raw/yt_dlp.zip b/library/src/main/res/raw/yt_dlp.zip
index 6d699cea..ec789d2f 100644
Binary files a/library/src/main/res/raw/yt_dlp.zip and b/library/src/main/res/raw/yt_dlp.zip differ