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 ed6a6c8e64c58502b7813f80208c3887fd898142..a80b1aabd09d7a1ecc778c98d56c868f4d6dc243 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
@@ -1857,7 +1857,7 @@ class VideoDetailView : ConstraintLayout {
         }
     }
 
-    private fun c(playing: Boolean) {
+    private fun handlePlayChanged(playing: Boolean) {
         Logger.i(TAG, "handlePlayChanged(playing=$playing)")
 
         val ad = StateCasting.instance.activeDevice;
diff --git a/app/src/main/java/com/futo/platformplayer/subscription/SubscriptionsTaskFetchAlgorithm.kt b/app/src/main/java/com/futo/platformplayer/subscription/SubscriptionsTaskFetchAlgorithm.kt
index 5acbc4cd94061b31930e53035cf8b01dccc8ac44..9be47538cfe5cb49256f666766ea94497f17d412 100644
--- a/app/src/main/java/com/futo/platformplayer/subscription/SubscriptionsTaskFetchAlgorithm.kt
+++ b/app/src/main/java/com/futo/platformplayer/subscription/SubscriptionsTaskFetchAlgorithm.kt
@@ -126,7 +126,7 @@ abstract class SubscriptionsTaskFetchAlgorithm(
         val pager = MultiChronoContentPager(groupedPagers, allowFailure, 15);
         pager.initialize();
 
-        return Result(DedupContentPager(pager), exs);
+        return Result(DedupContentPager(pager, StatePlatform.instance.getEnabledClients().map { it.id }), exs);
     }
 
     fun executeSubscriptionTasks(tasks: List<SubscriptionTask>, failedPlugins: MutableList<String>, cachedChannels: MutableList<String>): List<ForkJoinTask<SubscriptionTaskResult>> {
diff --git a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt
index f5ab51370a1ba3718b10aefc7a56410031dacdee..a84dcef69f7bf01091839169f30b3df3ce6be2e4 100644
--- a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt
+++ b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt
@@ -629,7 +629,10 @@ class FutoVideoPlayer : FutoVideoPlayerBase {
         }
     }
 
-    override fun onPlay
+    override fun onIsPlayingChanged(playing: Boolean) {
+        super.onIsPlayingChanged(playing)
+        updatePlayPause();
+    }
     override fun onPlaybackStateChanged(playbackState: Int) {
         Logger.v(TAG, "onPlaybackStateChanged $playbackState");
         updatePlayPause()
diff --git a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt
index eda601334a7e8207ae2d362a67d012ecf415febc..d60a3f8e6ab0f4153ad60bbcd13ff54a3a6d8517 100644
--- a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt
+++ b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt
@@ -106,6 +106,7 @@ abstract class FutoVideoPlayerBase : RelativeLayout {
 
         override fun onIsPlayingChanged(isPlaying: Boolean) {
             super.onIsPlayingChanged(isPlaying);
+            this@FutoVideoPlayerBase.onIsPlayingChanged(isPlaying);
             updatePlaying();
         }
 
@@ -625,6 +626,9 @@ abstract class FutoVideoPlayerBase : RelativeLayout {
     }
     protected open fun onSourceChanged(videoSource: IVideoSource?, audioSource: IAudioSource? = null, resume: Boolean = true) { }
 
+    protected open fun onIsPlayingChanged(playing: Boolean) {
+
+    }
     protected open fun onPlaybackStateChanged(playbackState: Int) {
         if (_shouldPlaybackRestartOnConnectivity && playbackState == ExoPlayer.STATE_READY) {
             Logger.i(TAG, "_shouldPlaybackRestartOnConnectivity=false");