Code Monkey home page Code Monkey logo

panopto's Introduction

Panopto

GitHub closed issues GitHub issues GitHub closed pull requests GitHub pull requests GitHub forks GitHub stars

Description

This plugin can be installed in the LMS ILIAS to implement an interface to the external video platform Panopto. It introduces a new repository object type, in which video from Panopto can be added and viewed, as well as new videos can be recorded and uploaded directly to Panopto.

Installation

Start at your ILIAS root directory

mkdir -p Customizing/global/plugins/Services/Repository/RepositoryObject
cd Customizing/global/plugins/Services/Repository/RepositoryObject
git clone https://github.com/fluxapps/Panopto.git

Configuration

Panopto

Login to your Panopto instance as administrator.

Identity Provider

Navigate to "System" -> "Identity Providers" and add a new provider. Enter the following data:

  • Provider Type: BLTI
  • Instance Name: choose an identifier, e.g: "ilias.myinstitution" (will be needed in the plugin configuration)
  • Friendly Description: choose any description
  • Bounce Page URL: http://{your-ilias-installation}/Customizing/global/plugins/Services/Repository/RepositoryObject/Panopto/classes/bounce.php
  • Parent folder name: choose a folder, where all objects coming from this ILIAS instance will be created
  • Suppress access permission sync on LTI link: Set 'true' if you want to stop the behavior to revoke Viewer permission of other course folders.
  • Application Key: save this key for the plugin configuration
  • Bounce page blocks iframes: False (don't check)
  • Default Sign-in Option: False (don't check)
  • Personal folders for users: Choose which kind of users should get personal folders (can be changed later)
  • LTI Username parameter override: Leave empty
  • Show this in Sign-in Dropdown: False (don't check)

Now, to create an api user:

  • Navigate to "System" -> "Users"
  • Click on "Batch Create" (for some reason you can't create single external users)
  • As "Provider", choose the previously created identity provider
  • Enter a username and an email address comma-separated, e.g. "api_user, [email protected]"
  • Uncheck the checkbox "Create a personal folder for each user" (except if you want a personal folder for the api user for some reason)
  • Click "Preview" and on the next Screen "Create Users"

After the user is created, open the user details by clicking on the user's name. Check the role "Administrator" under "Info" -> "System Roles" and click "Update Roles".

REST Client

Navigate to "System" -> "API Clients" and add a new client. Enter a Client Name of your choice and select the Client Type "User Based Server Application". All other fields can be left empty. Write down the Client Name, Client ID and Client Secret for later.

Unfortunately, the previously created api user can not be used for the REST api, as it has to be an internal user. So create another user:

  • Navigate to "System" -> "Users"
  • Click on "New"
  • Fill out the form as follows:
    • enter the required fields
    • write down the username and password for later
    • uncheck the Options "Email user when recorded..." and "Create a personal folder..."
  • Create the user

ILIAS

Now, login to your ILIAS instance as an administrator. Navigate to "Administration" -> "Plugins" and look for the "Panopto" plugin. Install/Update the plugin if it's not up-to-date yet and afterwards choose "Configure". Configure the plugin as followed:

  • General
    • Object Title: choose how this object type should be named in ILIAS (displayed e.g. when creating a new object in the repository)
  • SOAP API
    • API user: enter the name of the previously created API user (e.g. "api_user")
    • Hostname: the hostname of your Panopto instance without "https://". E.g. "demo.panopto.com"
    • Instance Name: the same identifier you chose when creating the identity provider in Panopto
    • Application Key: the key which appeared when creating the identity provider in Panopto
    • User Identification: chose which user field will be used as user identification (either the login or the external account)
  • REST API
    • API User: the user created in the section REST Client
    • API Password: the password for this user
    • Client Name: name of REST Client created in the section REST Client
    • Client ID: ID of REST Client created in the section REST Client
    • Client-Secret: Secret of REST Client created in the section REST Client

Authors

This is an OpenSource project by studer + raimann ag (https://fluxlabs.ch)

License

This project is licensed under the GPL v3 License

Maintenance

fluxlabs ag, [email protected]

This project is maintained by fluxlabs.

panopto's People

Contributors

fluxdw avatar fluxfw avatar jheim2 avatar mstuder avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

panopto's Issues

Ordering Bug - HTTP Error 500

beim Sortieren wird zwar, das Sortieren gespeichert. Hingegen schickt der Server eine 500er-Fehlermeldung zurück.

Problems with special characters in names

We just stumbled upon a 403 error for users whose name (here: lastname) contains special characters, in our case a single quote '. These users can open the tab "Content" but they can't open the tab "videos" of Panopto objects due to a Panopto 403 error. When tracking this down we came down to the class "class.xpanLTILaunch.php" https://github.com/fluxapps/Panopto/blob/main/classes/Videos/class.xpanLTILaunch.php which sets the different parameters for the LTI launch in $launch_data (

$launch_data = array(
). In our case the problem came up with the name of "d'Origine". Upon replacing the single quote ' with nothing in line 31,32,33
"lis_person_name_family" => $DIC->user()->getLastname(),
via str_replace the call for the "videos" tab seems to work fine. The problem, however, is that we need to find a general solution if other special characters cause this problem, too. Do you have any idea?

PageComponent Bug

Derzeit wird beim Einfuegen von Panopto per Page Component sobald der Zugriff auf viele Objekte besteht vom Server die Rueckmeldung gegeben Bad Gateway.
Danke fuer die ausfuehrliche Analyse @patn und @hsrmsk !
SoapFault thrown with message "Bad Gateway"
Stacktrace:
#22 SoapFault in /data/www/ilias/Customizing/global/plugins/Services/Repository/RepositoryObject/Panopto/vendor/lucisgit/php-panopto-api/lib/Panopto/PublicAPI/4.6/SessionManagement/SessionManagement.php:240
#21 SoapClient:__soapCall in /data/www/ilias/Customizing/global/plugins/Services/Repository/RepositoryObject/Panopto/vendor/lucisgit/php-panopto-api/lib/Panopto/PublicAPI/4.6/SessionManagement/SessionManagement.php:240
Naechste Schritte:
Wir erhalten Zugriff auf eine Panopto Testumgebung, um das Problem zu analysieren und zu beheben.

Panopto-Plugin: kein Zugriff während ein Livestream läuft

wir haben einen Bug im Panopto-Plugin festgestellt:

Während in einem Panopto-Container ein Livestream läuft, ist kein Zugriff auf diesen Panopto-Container möglich. Der Anwender erhält die Meldung „Entschuldigung, es ist ein Fehler aufgetreten. Eine Logdatei wurde erzeugt…“. Nachdem der Livestream gestoppt ist, funktioniert der Zugriff wieder.

In der Logdatei steht:
TypeError thrown with message "Argument 5 passed to srag\Plugins\Panopto\DTO\Session::__construct() must be of the type int, null given, called in /var/www/ilias3/Customizing/global/plugins/Services/Repository/RepositoryObject/Panopto/src/DTO/ContentObjectBuilder.php on line 41"

Unsere Version ist ILIAS 7.12, Panopto-Plugin 1.6.1.

ILIAS Funktion "Verknüpfen" entfernen

Stand derzeit:

Kopieren kopiert in ILIAS das Panopto Objekt und verknuepft im Hintergrund die entsprechenden Videos.

ToDo

Verknuepfen als Funktion in ILIAS nicht anbieten.

Viewer Gruppe einrichten

User schaut sich ein Video an

Derzeit wird der User direkt als User beim Panopto-Video eingetragen.
Gewünschtes Verhalten - siehe bessere ALTERNATIVE

es wird eine Viewer-Gruppe erzeugt.
Nutzer sollen nun nicht mehr direkt zum Video zugewiesen sondern der Viewer-Gruppe zugewiesen werden.

entsprechende Code-Stelle:
https://git.fluxlabs.ch/fluxlabs/ilias/plugins/RepositoryObjects/Panopto/-/blob/main/classes/Util/class.xpanClient.php#L310

bessere Alternative:
CronJob implementieren, welcher über alle Panopto-Videos/Folder geht, welche in ILIAS verfügbar sind und dort sämtliche Viewer rauslöscht.
Um die Zeiten zu verkürzen. Schreiben wir jeweils täglich die Objekte weg, welche angesehen werden. Somit müssen wir nächtlich nur über diese gehen.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.