-
-
Notifications
You must be signed in to change notification settings - Fork 60
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
feat(PreviewCard): gtuber #1171
Conversation
@Rafostar Do any of these services need a uri scheme substitution like peertube? (also I caught another one of these weird freezes, I'll take a closer look, the post is https://mastodon.social/@hiromst/110426877145818741 Screencast.From.2024-10-21.06-24-25.mp4, my guess is probably that Tuba disposes the clapper instance while it still processing stuff) |
Hi, It was made long before Clapper libraries existed. Nowadays it actually limits some possibilities/things I could achieve in Clapper and other apps that want playback can simply embed Clapper, so decision was made to move this functionality to Clapper monorepo. While old implementation will continue to work, it will probably end up unmaintained once new functionality is (hopefully) finished. So you can test playback, but might want to reconsider merging it now (and forcing package maintainers to add it too).
The basic principle/reason for this is that services that are self-hosted use URI scheme to explain that this host is this service instance and should be treated as such.
Feel free to open any issues you have on Clapper repo. I will try to look into them before 0.8 and even if we miss something there shouldn't be any problem doing patch version release with a fix 😄 . Right now of the few apps that use |
I see, thanks for the info! I guess I'll close this and re-visit it when 0.8 comes out! My main feature request for when gtuber's functionality gets added to Clapper, would be something similar to
I'll do so after I debug it a bit further, thanks! |
I will keep this in mind. Just remember that having a plugin doesn't necessary mean that extraction will succeed. |
While I continue on porting gtuber into Clapper, thinking about your request here, I realized that... this API does not do what you actually want! 😅 In reality your Q&A is: Question: So, how can you know that GStreamer supports this URI? But as I mentioned previously, this never gives you 100% chance that it will actually play and does not encounter any errors when trying to do so. Use only if you really, really need to check ahead of time. Normally app should just try to play content and if it encounters a missing-plugin or an error handle them somehow (for example by giving alternative way to play content via browser). Thats at least my friendly suggestion 😄 . |
I wouldn't expect it to work when providing platform websites instead of direct links to the streams, should I? I mean, I expect Either way, that's only partially of what I need 😔 If gtuber-in-clapper has a modular design like gtuber does currently, where you can build it with only some services, I'd still like some way of knowing what's available. That way if a distro has built Clapper (with gtuber) but has enabled only youtube and twitch, Tuba would know in advance. It can be an array of an enum or something for all that matters: if (uri.get_host () == "youtube.com" && Gtuber.Platform.YOUTUBE in Gtuber.available_platforms) {
// open in Clapper
} else {
// open in browser
} |
First of all, nice that I can brainstorm the ideas with someone regarding this in the middle of making. Thanks for your input 👍
Not entirely. If you want to support only a single plugin (previously gtuber, now its replacement) you can pass its name as an arg to this function, then it will return NULL when either: Clapper not compiled with this functionality or if a YOUTUBE module is not available. Alternatively, if you want to support only a select few elements you know names in advance like gtuber, new one (name still undecided) and so on. You can make it from Third option that might be more universal I can think of is to use gst_element_make_from_uri with NULL arg as element name, then check if anything returned AND if returned element does not happen to be one of the "stock" |
Welcome youtube, twitch, bilibili and a gazillion other services to the clapper version
TODO:
check what plugins are available in advance?