phaidra / phaidra-api

RESTish API to Phaidra
Apache License 2.0
6 stars 4 forks source link

how to get repository where object is stored? #74

Closed umlaeute closed 2 years ago

umlaeute commented 2 years ago

i'd like to embed a video hosted on phaidra on a 3rd-party website.

this works great if I find the object's URL on the actual fedora repository, but I don't really know, how to I could find that URL programmatically from a standard "phaidra URL".

E.g. given the video https://phaidra.univie.ac.at/o:1598810 I can embed this with something like

<iframe src="https://fedora.phaidra.univie.ac.at/fedora/objects/o:1598810/methods/bdef:StreamingVideo/" allowfullscreen></iframe>

However, this requires me to have some a-priori knowledge, that phaidra.univie.ac.at uses fedora.phaidra.univie.ac.at as the repository server.

i have checked the objects metadata, Dublin Core and UWMetaData, but haven't found anything so far.

ideas?

umlaeute commented 2 years ago

and of course: the player that is built-into phaidra (as seen on https://phaidra.univie.ac.at/o:1598810 ), is much nicer than the standard HTML5 player that I get by embedding the StreamingVideo as shown above.

So: I would be even more interested in how to properly embed a phaidra-hosted video on a website (if you want, i can create a separate issue)

RastislavHudak commented 2 years ago

I suggest you use this URL instead: https://services.phaidra.univie.ac.at/api/object/o:1598810/preview, It returns the fully initialized html5 videojs player.

There's also a way to get the streaming key from api, and then you could create your own template, where I guess you can setup the videojs to your likings, but the streaming infrastructure of the university is a blackbox to us and I can't tell how long that particular template stays valid. The .../preview api endpoint is more likely to work in the future.

umlaeute commented 2 years ago

indeed, that looks much better.

but again: how would I know the hostname on my instance? for phaidra.univie.ac.at it seems like services.phaidra.univie.ac.at, but this is a-priori knowledge that i would like to avoid.

or put otherwise: is the relation <INSTANCE> -> services.<INSTANCE> hardcoded and true for all instances?

umlaeute commented 2 years ago

also: i haven't worked a while with video.js, but is there a way that I can provide a start-time (and possibly and end-time, but that is less important)?

umlaeute commented 2 years ago

where I guess you can setup the videojs to your likings

that probably answers my question about "start-time"...

but the streaming infrastructure of the university is a blackbox

ah, that complicates things a bit. my instance is (of course!) not the univie instance (but the KUG one). it seems that the video player is neverthless working (supposedly, because the KUG-instance is actually hosted at the univie, using the same infrastructure...)

RastislavHudak commented 2 years ago

The <INSTANCE> -> services.<INSTANCE> is not true for all instances, it's not possible because of diverging domain politics.

I can't help with start/end time unfortunately, did not have to deal with that so far.

We're happy to answer questions which are not directly related to api code (eg setup of a particular instance) on support.phaidra@univie.ac.at.

umlaeute commented 2 years ago

The <INSTANCE> -> services.<INSTANCE> is not true for all instances, it's not possible because of diverging domain politics.

that's why my original question was: "is it possible to query (the API) for where an object is stored?"

the original question was targeting at the <INSTANCE> -> fedora.<INSTANCE> mapping, but now it has shifted to <INSTANCE> -> services.<INSTANCE>.

thanks for your patience...

RastislavHudak commented 2 years ago

No problem. Unfortunately <INSTANCE> -> <INSTANCE-API> is not possible.

So currently, you'd typically have the base url of the api in config of your application (for your instance, or per instance, if you're working against multiple instances).

If it's crucial for you project, we could use something like signposting to add such information when resolving persistent identifiers.

umlaeute commented 2 years ago

nah, it's not crucial. i can live with hardcoding the values for now (i was just wondering whether i have to).

thanks.