diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt
index dd10476ae3f06d1001953443c9af756f5335c21c..78f14b56b0a4e73937a0e35e45576128175f9c0f 100644
--- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt
+++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt
@@ -1003,6 +1003,9 @@ class VideoDetailView : ConstraintLayout {
     fun setVideo(url: String, resumeSeconds: Long = 0, playWhenReady: Boolean = true) {
         Logger.i(TAG, "setVideo url=$url resumeSeconds=$resumeSeconds playWhenReady=$playWhenReady")
 
+        if(this.video?.url == url)
+            return;
+
         _searchVideo = null;
         video = null;
         _playbackTracker = null;
@@ -1033,6 +1036,9 @@ class VideoDetailView : ConstraintLayout {
     fun setVideoOverview(video: IPlatformVideo, fetch: Boolean = true, resumeSeconds: Long = 0) {
         Logger.i(TAG, "setVideoOverview")
 
+        if(this.video?.url == video.url)
+            return;
+
         val cachedVideo = StateDownloads.instance.getCachedVideo(video.id);
         if(cachedVideo != null) {
             setVideoDetails(cachedVideo, true);
@@ -1131,6 +1137,9 @@ class VideoDetailView : ConstraintLayout {
     fun setVideoDetails(videoDetail: IPlatformVideoDetails, newVideo: Boolean = false) {
         Logger.i(TAG, "setVideoDetails (${videoDetail.name})")
 
+        if(newVideo && this.video?.url == videoDetail.url)
+            return;
+
         if (newVideo) {
             _lastVideoSource = null;
             _lastAudioSource = null;
@@ -2551,7 +2560,7 @@ class VideoDetailView : ConstraintLayout {
                 }
                 else
                     withContext(Dispatchers.Main) {
-                        setVideoDetails(videoDetail);
+                        setVideoDetails(videoDetail, true);
                         _liveTryJob = null;
                     }
             }
diff --git a/app/src/stable/assets/sources/patreon b/app/src/stable/assets/sources/patreon
index 139444608dbd561a317fc4666dfe01b868335e80..bc13b38411bdb8ad7c48d869ec9bc2068e671bd0 160000
--- a/app/src/stable/assets/sources/patreon
+++ b/app/src/stable/assets/sources/patreon
@@ -1 +1 @@
-Subproject commit 139444608dbd561a317fc4666dfe01b868335e80
+Subproject commit bc13b38411bdb8ad7c48d869ec9bc2068e671bd0
diff --git a/app/src/stable/assets/sources/youtube b/app/src/stable/assets/sources/youtube
index b7864b910172659d29602f05d968427bffcc95f0..c86c73db0cdde3371c7944dd82c34ea4e5c725d9 160000
--- a/app/src/stable/assets/sources/youtube
+++ b/app/src/stable/assets/sources/youtube
@@ -1 +1 @@
-Subproject commit b7864b910172659d29602f05d968427bffcc95f0
+Subproject commit c86c73db0cdde3371c7944dd82c34ea4e5c725d9
diff --git a/app/src/unstable/assets/sources/patreon b/app/src/unstable/assets/sources/patreon
index 139444608dbd561a317fc4666dfe01b868335e80..bc13b38411bdb8ad7c48d869ec9bc2068e671bd0 160000
--- a/app/src/unstable/assets/sources/patreon
+++ b/app/src/unstable/assets/sources/patreon
@@ -1 +1 @@
-Subproject commit 139444608dbd561a317fc4666dfe01b868335e80
+Subproject commit bc13b38411bdb8ad7c48d869ec9bc2068e671bd0
diff --git a/app/src/unstable/assets/sources/youtube b/app/src/unstable/assets/sources/youtube
index b7864b910172659d29602f05d968427bffcc95f0..c86c73db0cdde3371c7944dd82c34ea4e5c725d9 160000
--- a/app/src/unstable/assets/sources/youtube
+++ b/app/src/unstable/assets/sources/youtube
@@ -1 +1 @@
-Subproject commit b7864b910172659d29602f05d968427bffcc95f0
+Subproject commit c86c73db0cdde3371c7944dd82c34ea4e5c725d9