Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Diminishing Proxy Support – Request for Direct Feed Extraction #6875

Closed
3 tasks done
akashsriramganapathy opened this issue Dec 13, 2024 · 9 comments · Fixed by #6938
Closed
3 tasks done

Diminishing Proxy Support – Request for Direct Feed Extraction #6875

akashsriramganapathy opened this issue Dec 13, 2024 · 9 comments · Fixed by #6938
Labels
enhancement New feature or request

Comments

@akashsriramganapathy
Copy link

akashsriramganapathy commented Dec 13, 2024

Describe your suggested feature

Currently, the availability of reliable proxies for Piped has drastically decreased, with fewer than five functional options remaining. This instability makes it impractical to depend entirely on proxies for feed extraction.

Given the uncertainty around the future support for proxies by Piped, I request the implementation of a direct feed extraction method. This would ensure that feed data can be fetched reliably without being dependent on the dwindling proxy infrastructure.

This feature is especially crucial for LibreTube users who rely on this app for their daily use. A direct extraction method would solidify the app's reliability and usability in the long term.

Other details

Acknowledgements

  • I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
  • I have written a short but informative title.
  • I will fill out all of the requested information in this form.
@akashsriramganapathy akashsriramganapathy added the enhancement New feature or request label Dec 13, 2024
@Figim
Copy link

Figim commented Dec 14, 2024

I really like that too. It would be great if everything was a free choice for the user

@Bnyro
Copy link
Member

Bnyro commented Jan 10, 2025

I'd appreciate some people testing this before the next release in about a week or so because this has been a large refactor and added a lot of new code.

@Figim
Copy link

Figim commented Jan 10, 2025

I'd appreciate some people testing this before the next release in about a week or so because this has been a large refactor and added a lot of new code.

I will help.🙂

@Bnyro
Copy link
Member

Bnyro commented Jan 10, 2025

Note that if you don't swipe to refresh it manually, it's only updated once a day. It internally makes sure the last refresh has been more than a day ago in order to automatically refresh the feed, to avoid large loading times each time you open the feed.

@Figim
Copy link

Figim commented Jan 10, 2025

Note that if you don't swipe to refresh it manually, it's only updated once a day. It internally makes sure the last refresh has been more than a day ago in order to automatically refresh the feed, to avoid large loading times each time you open the feed.

Now everything should work like newpipe?
Or only subscribes?

Error when opening "Local Feed Extraction" option and clicking on the subscriptions button

java.lang.NullPointerException
at com.github.libretube.ui.adapters.VideosAdapter.onBindViewHolder(VideosAdapter.kt:96)
at com.github.libretube.ui.adapters.VideosAdapter.onBindViewHolder(VideosAdapter.kt:38)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7678)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7761)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6582)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6848)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6688)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6684)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2362)
at androidx.recyclerview.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:584)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687)
at androidx.recyclerview.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:182)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4604)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4307)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4873)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:149)
at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2365)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at androidx.swiperefreshlayout.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:689)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:374)
at android.widget.FrameLayout.onLayout(FrameLayout.java:312)
at android.view.View.layout(View.java:24461)
at android.view.ViewGroup.layout(ViewGroup.java:7412)
at androidx.constraintlayout.motion.widget.MotionPaths.setView(MotionPaths.java:723)
at androidx.constraintlayout.motion.widget.MotionController.interpolate(MotionController.java:1356)
at androidx.constraintlayout.motion.widget.MotionLayout.evaluateLayout(MotionLayout.java:3742)
at androidx.constraintlayout.motion.widget.MotionLayout.onMeasure(MotionLayout.java:3078)
at android.view.View.measure(View.java:27129)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7980)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:197)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141)
at android.view.View.measure(View.java:27129)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7980)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:27129)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7980)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:197)
at android.view.View.measure(View.java:27129)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7980)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:27129)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7980)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:197)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:1278)
at android.view.View.measure(View.java:27129)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:4536)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:3228)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3533)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2919)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10491)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1108)
at android.view.Choreographer.doCallbacks(Choreographer.java:866)
at android.view.Choreographer.doFrame(Choreographer.java:797)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1092)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

@Figim
Copy link

Figim commented Jan 10, 2025

All servers are down. Subscription channels are also not loaded in this section for this reason.

@Bnyro
Copy link
Member

Bnyro commented Jan 10, 2025

Now everything should work like newpipe?
Or only subscribes?

Only the video feed.

@Bnyro
Copy link
Member

Bnyro commented Jan 10, 2025

The mentioned crash should be fixed now, it's been unrelated to the local feed extraction though.

@akashsriramganapathy
Copy link
Author

Thank you much am missed to test right after the release anyhow community checked this is the major key feature. Thank you so much

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants