Please note: All new registrants to the Panopto Community Forum must be approved by a forum moderator or admin. As such, if you navigate to a feature that is members-only, you may receive an error page if your registration has not yet been approved. We apologize for any inconvenience and are approving new members as quickly as possible.
Any way to change a session's StartTime via the API?
Charles Barbour
Superstar
in API
It looks like this should be settable via the API, but I can't find any WSDL calls for it.
I tried using UpdateSessionStartDate, UpdateSessionStartTime, StartDate, and StartTime but I kept getting "AttributeError: Service has no operation 'ANY OF THOSE I TRIED'"
Thanks!
Chaz
0
Answers
Bump. Is this possible?
Charles,
Thank you very much for asking this question.
You may specify the start time of the streams when you upload it by upload API (a.k.a. Universal Capture Specification / UCS).
Upload API is explained by this article: https://support.panopto.com/s/article/Upload-API
It is not possible to change the start time of a recording / streams after a video is uploaded or a recording is made by Panopto recorders either from API or Panopto UI.
Interesting... Which field is this setting and is that something which can be changed via the SOAP API?
Charles,
Thank you for pointing out that you may do so from web UI. You are correct and my answer in previous response is wrong.
It is still true that Panopto does not provide that capability from SOAP or REST API and we will consider providing it in the future.
With regards to Upload API (UCS), you may find in XSD that these two fields to specify the stream time.
<!-- The date the session was created. -->
<xs:element type="xs:dateTime" name="Date" minOccurs="0"/>
<!-- The time at which this video starts relative to session start. Determines its position on the timeline. -->
<xs:element type="xs:duration" name="Start"/>
The SOAP API documentation specifically says that this value is settable via the API.
Session.StartTime Property
"Gets or sets the time the session started recording in UTC"
https://support.panopto.com/resource/APIDocumentation/Help/html/3849886b-cfc5-377c-f6fe-4a7888a73ae4.htm
Can I point out how ridiculous this entire API situation is? Even though I currently have to use a combination of the SOAP API and the watch folder service, if I could simply set the StartTime via the API (as the documentation claims I should be able to), I would be able to get everything I want done. As it stands, there is no way for me to do what I want.
The REST API can't be used with Python 2 and doesn't actually do most of the functions which can be done in the SOAP API.
The SOAP API can't be used with Python 3.
To do most of what I want to do I have to use the SOAP API. But I can't use the SOAP API because I can't find any easy way to upload a session via that method. Even if I could, the program would have to be far more complex than I am capable of writing because I would have to use the UCS specification via the upload API. And I don't even know if that's possible in the SOAP API anyway. The WatchFolder service I'm using to upload also apparently doesn't provide any ability to set StartTime.
Essentially, I would have to have one app just to upload videos and set the StartTime and another app to create folders, move files, set the description, and rename sessions.
Does that make any sense?
If you want people to use the APIs, you need to fix this situation. As it stands now, it's completely unacceptable.
Charles,
Thank you very much for the reply.
I think your ultimate goal is to upload videos.
Panopto provides upload API (UCS) to import and that is the best way to upload the contents.
The manifest of UCS may specify the start time.
The detail explanation is here.
https://support.panopto.com/s/article/Upload-API
And this article points a sample code by Python.
Let me explain about SOAP API.
Any properties of a session need to be updated by individual UpdateSomething methods in ISessionManager,
for example UpdateSessionName method.
We do not provide a method to receive an entire Session object and reflect all properties.
Unfortunately, we do not provide a method to update start time at this time and we will consider adding it in the future.
I need to admit that this documentation is primarily targeting C# developer and that confuses others.
When C# developer imports the SOAP API spec via WSDL, classes are automatically generated.
Session class is one of them and the object itself in C# world can set a value on any field.
The document statement 'get or set' represents that fact.
However, it is not reflected to the server without update methods explained above.
So if I used C# I would be able to set the StartTime?
If so, not only do we not have feature parity between the SOAP and REST APIs, we don't even have parity between the various programming languages.
It sure would be nice if the REST API provided all the same functionality that the SOAP API does so I could explore using the UCS API in addition to doing the other things my code needs to do. It seems silly to have to write and maintain 2 different applications with different requirements and methodologies.
Charles,
You asked "I used C# I would be able to set the StartTime".
I am sorry the answer is no.
I apologize the fact that Panopto SOAP API and REST API have different feature coverage at this time. We are going to close the gaps going forward.