La plateforme Esup-Pod se base sur le framework Django écrit en Python.
Elle supporte les versions 3.7, 3.8 et 3.9 de Python.
Django Version : 3.2 LTS
La documentation complète du framework : https://docs.djangoproject.com/fr/3.2/ (ou https://docs.djangoproject.com/en/3.2/)
L’ensemble des variables de configuration du framework est accessible à cette adresse : https://docs.djangoproject.com/fr/3.2/ref/settings/
Voici les configurations des applications tierces utilisées par Esup-Pod.
CAS
valeur par défaut :
1.5.2
Système d’authentification SSO_CAS
https://github.com/kstateome/django-cas
ModelTransalation
valeur par défaut :
0.18.7
L’application modeltranslation est utilisée pour traduire le contenu dynamique des modèles Django existants
https://django-modeltranslation.readthedocs.io/en/latest/installation.html#configuration
captcha
valeur par défaut :
0.5.17
Gestion du captcha du formulaire de contact
https://django-simple-captcha.readthedocs.io/en/latest/usage.html
chunked_upload
valeur par défaut :
2.0.0
Envoi de fichier par morceaux // voir pour mettre à jour si nécessaire
https://github.com/juliomalegria/django-chunked-upload
ckeditor
valeur par défaut :
6.3.0
Application permettant d’ajouter un éditeur CKEditor dans certains champs
https://django-ckeditor.readthedocs.io/en/latest/#installation
django_select2
valeur par défaut :
latest
Recherche et completion dans les formulaires
https://django-select2.readthedocs.io/en/latest/
honeypot
valeur par défaut :
1.0.3
Utilisé pour le formulaire de contact de Pod - ajoute un champ caché pour diminuer le spam
https://github.com/jamesturk/django-honeypot/
mozilla_django_oidc
valeur par défaut :
3.0.0
Système d’authentification OpenID Connect
https://mozilla-django-oidc.readthedocs.io/en/stable/installation.html
rest_framework
valeur par défaut :
3.14.0
version 3.14.0: mise en place de l’API rest pour l’application
https://www.django-rest-framework.org/
shibboleth
valeur par défaut :
latest
Système d’authentification Shibboleth
https://github.com/Brown-University-Library/django-shibboleth-remoteuser
sorl.thumbnail
valeur par défaut :
12.9.0
Utilisée pour la génération de miniature des images
https://sorl-thumbnail.readthedocs.io/en/latest/reference/settings.html
tagging
valeur par défaut :
0.5.0
Gestion des mots-clés associés à une vidéo // voir pour référencer une nouvelle application
https://django-tagging.readthedocs.io/en/develop/#settings
DATABASES
valeur par défaut :
{ 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
>> Un dictionnaire contenant les réglages de toutes les bases de données à utiliser avec Django. <br>
>> C’est un dictionnaire imbriqué dont les contenus font correspondre l’alias de base de données avec un dictionnaire contenant les options de chacune des bases de données. <br>
>> __ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#databases]()__ <br>
>> valeur par défaut : une base de données au format sqlite <br>
>> Voici un exemple de configuration pour utiliser une base MySQL : <br>
>>
>> ```
>> DATABASES = {
>> 'default': {
>> 'ENGINE': 'django.db.backends.mysql',
>> 'NAME': 'pod',
>> 'USER': 'pod',
>> 'PASSWORD': 'password',
>> 'HOST': 'mysql.univ.fr',
>> 'PORT': '3306',
>> 'OPTIONS': {
>> 'init_command': "SET storage_engine=INNODB, sql_mode='STRICT_TRANS_TABLES', innodb_strict_mode=1, foreign_key_checks = 1",
>> },
>> }
>> }
>>
>> ```
### Courriel
- `CONTACT_US_EMAIL`
> valeur par défaut : ``
>> Liste des adresses destinataires des courriels de contact <br>
- `CUSTOM_CONTACT_US`
> valeur par défaut : `False`
>> Si 'True', les e-mails de contacts seront adressés, selon le sujet, <br>
>> soit au propriétaire de la vidéo soit au(x) manager(s) des vidéos Pod. <br>
>> (voir `USER_CONTACT_EMAIL_CASE` et `USE_ESTABLISHMENT_FIELD`) <br>
- `DEFAULT_FROM_EMAIL`
> valeur par défaut : `noreply`
>> Expediteur par défaut pour les envois de courriel (contact, encodage etc.) <br>
- `EMAIL_HOST`
> valeur par défaut : `smtp.univ.fr`
>> nom du serveur smtp <br>
>> _ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#email-host]()_ <br>
- `EMAIL_PORT`
> valeur par défaut : `25`
>> Port d’écoute du serveur SMTP. <br>
- `EMAIL_SUBJECT_PREFIX`
> valeur par défaut : ``
>> Préfixe par défaut pour l’objet des courriels. <br>
- `SERVER_EMAIL`
> valeur par défaut : `noreply`
>> Expediteur par défaut pour les envois automatique (erreur de code etc.) <br>
- `SUBJECT_CHOICES`
> valeur par défaut : `()`
>> Choix de sujet pour les courriels envoyés depuis la plateforme <br>
>>
>> ```
>> SUBJECT_CHOICES = (
>> ('', '-----'),
>> ('info', ('Request more information')),
>> ('contribute', ('Learn more about how to contribute')),
>> ('request_password', ('Password request for a video')),
>> ('inappropriate_content', ('Report inappropriate content')),
>> ('bug', ('Correction or bug report')),
>> ('other', ('Other (please specify)'))
>> )
>>
>> ```
- `SUPPORT_EMAIL`
> valeur par défaut : `None`
>> Liste de destinataire(s) pour les demandes d’assistance, si différent de `CONTACT_US_EMAIL` <br>
>> i.e.: `SUPPORT_EMAIL = ["[email protected]"]` <br>
- `USER_CONTACT_EMAIL_CASE`
> valeur par défaut : ``
>> Une liste contenant les sujets de contact dont l’utilisateur <br>
>> sera seul destinataire plutôt que le(s) manager(s). <br>
>> Si la liste est vide, les mails de contact seront envoyés au(x) manager(s). <br>
>> Valeurs possibles : <br>
>> 'info', 'contribute', 'request_password', <br>
>> 'inapropriate_content', 'bug', 'other' <br>
- `USE_ESTABLISHMENT_FIELD`
> valeur par défaut : `False`
>> Si valeur vaut 'True', rajoute un attribut 'establishment' <br>
>> à l’utilisateur Pod, ce qui permet de gérer plus d’un établissement. <br>
>> Dans ce cas, les emails de contact par exemple seront envoyés <br>
>> soit à l’utilisateur soit au(x) manager(s) <br>
>> de l’établissement de l’utilisateur. <br>
>> (voir `USER_CONTACT_EMAIL_CASE`) <br>
>> Également, les emails de fin d’encodage seront envoyés au(x) manager(s) <br>
>> de l’établissement du propriétaire de la vidéo encodée, <br>
>> en plus d’un email au propriétaire confirmant la fin d’encodage d’une vidéo. <br>
### Encodage
- `FFMPEG_AUDIO_BITRATE`
> valeur par défaut : `192k`
- `FFMPEG_CMD`
> valeur par défaut : `ffmpeg`
- `FFMPEG_CREATE_THUMBNAIL`
> valeur par défaut : `-vf "fps=1/(%(duration)s/%(nb_thumbnail)s)" -vsync vfr "%(output)s_%%04d.png"`
- `FFMPEG_CRF`
> valeur par défaut : `20`
- `FFMPEG_EXTRACT_SUBTITLE`
> valeur par défaut : `-map 0:%(index)s -f webvtt -y "%(output)s" `
- `FFMPEG_EXTRACT_THUMBNAIL`
> valeur par défaut : `-map 0:%(index)s -an -c:v copy -y "%(output)s" `
- `FFMPEG_HLS_COMMON_PARAMS`
> valeur par défaut : `-c:v %(libx)s -preset %(preset)s -profile:v %(profile)s -pix_fmt yuv420p -level %(level)s -crf %(crf)s -sc_threshold 0 -force_key_frames "expr:gte(t,n_forced*1)" -c:a aac -ar 48000 -max_muxing_queue_size 4000 `
- `FFMPEG_HLS_ENCODE_PARAMS`
> valeur par défaut : `-vf "scale=-2:%(height)s" -maxrate %(maxrate)s -bufsize %(bufsize)s -b:a:0 %(ba)s -hls_playlist_type vod -hls_time %(hls_time)s -hls_flags single_file -master_pl_name "livestream%(height)s.m3u8" -y "%(output)s" `
- `FFMPEG_HLS_TIME`
> valeur par défaut : `2`
- `FFMPEG_INPUT`
> valeur par défaut : `-hide_banner -threads %(nb_threads)s -i "%(input)s" `
- `FFMPEG_LEVEL`
> valeur par défaut : `3`
- `FFMPEG_LIBX`
> valeur par défaut : `libx264`
- `FFMPEG_M4A_ENCODE`
> valeur par défaut : `-vn -c:a aac -b:a %(audio_bitrate)s "%(output)s" `
- `FFMPEG_MP3_ENCODE`
> valeur par défaut : `-vn -codec:a libmp3lame -qscale:a 2 -y "%(output)s" `
- `FFMPEG_MP4_ENCODE`
> valeur par défaut : `-map 0:v:0 %(map_audio)s -c:v %(libx)s -vf "scale=-2:%(height)s" -preset %(preset)s -profile:v %(profile)s -pix_fmt yuv420p -level %(level)s -crf %(crf)s -maxrate %(maxrate)s -bufsize %(bufsize)s -sc_threshold 0 -force_key_frames "expr:gte(t,n_forced*1)" -max_muxing_queue_size 4000 -c:a aac -ar 48000 -b:a %(ba)s -movflags faststart -y -vsync 0 "%(output)s" `
- `FFMPEG_NB_THREADS`
> valeur par défaut : `0`
- `FFMPEG_NB_THUMBNAIL`
> valeur par défaut : `3`
- `FFMPEG_PRESET`
> valeur par défaut : `slow`
- `FFMPEG_PROFILE`
> valeur par défaut : `high`
- `FFMPEG_STUDIO_COMMAND`
> valeur par défaut : ` -hide_banner -threads %(nb_threads)s %(input)s %(subtime)s -c:a aac -ar 48000 -c:v h264 -profile:v high -pix_fmt yuv420p -crf %(crf)s -sc_threshold 0 -force_key_frames "expr:gte(t,n_forced*1)" -max_muxing_queue_size 4000 -deinterlace `
- `FFPROBE_CMD`
> valeur par défaut : `ffprobe`
- `FFPROBE_GET_INFO`
> valeur par défaut : `%(ffprobe)s -v quiet -show_format -show_streams %(select_streams)s -print_format json -i %(source)s`
### Gestion des fichiers
- `FILES_DIR`
> valeur par défaut : `files`
>> Nom du répertoire racine où les fichiers "complémentaires" <br>
>> (hors vidéos etc.) sont téléversés. Notament utilisé par PODFILE <br>
>> À modifier principalement pour indiquer dans LOCATION votre serveur de cache si elle n’est pas sur la même machine que votre POD. <br>
- `FILE_UPLOAD_TEMP_DIR`
> valeur par défaut : `/var/tmp`
>> Le répertoire dans lequel stocker temporairement les données (typiquement pour les fichiers plus grands que FILE_UPLOAD_MAX_MEMORY_SIZE) lors des téléversements de fichiers.<br> <br>
>> _ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#file-upload-temp-dir]()_ <br>
- `MEDIA_ROOT`
> valeur par défaut : `/pod/media`
>> Chemin absolu du système de fichiers pointant vers le répertoire qui contiendra les fichiers téléversés par les utilisateurs.<br> <br>
>> Attention, ce répertoire doit exister<br> <br>
>> _ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#std:setting-MEDIA_ROOT]()_ <br>
- `MEDIA_URL`
> valeur par défaut : `/media/`
>> prefix url utilisé pour accéder aux fichiers du répertoire media <br>
- `STATICFILES_STORAGE`
> valeur par défaut : ``
>> Indique à django de compresser automatiquement les fichiers css/js les plus gros lors du collectstatic pour optimiser les tailles de requetes.<br> <br>
>> À combiner avec un réglage webserver (`gzip_static on;` sur nginx)<br> <br>
>> _ref: [https://github.com/whs/django-static-compress]() <br>
- `STATIC_ROOT`
> valeur par défaut : `/pod/static`
>> Le chemin absolu vers le répertoire dans lequel collectstatic rassemble les fichiers statiques en vue du déploiement. Ce chemin sera précisé dans le fichier de configurtation du vhost nginx.<br> <br>
>> _ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#std:setting-STATIC_ROOT]()_ <br>
- `STATIC_URL`
> valeur par défaut : `/static/`
>> prefix url utilisé pour accèder aux fichiers static <br>
- `USE_PODFILE`
> valeur par défaut : `False`
>> Utiliser l’application de gestion de fichier fourni avec le projet. <br>
>> Si False, chaque fichier envoyé ne pourra être utilisé qu’une seule fois. <br>
- `VIDEOS_DIR`
> valeur par défaut : `videos`
>> Répertoire par défaut pour le téléversement des vidéos. <br>
### Langue
Par défaut, Esup-Pod est fournie en Francais et en anglais.<br/>
Vous pouvez tout à fait rajouter des langues comme vous le souhaitez. Il faudra pour cela créer un fichier de langue et traduire chaque entrée.<br/>
- `LANGUAGES`
> valeur par défaut : `(('fr', 'Français'), ('en', 'English')))`
>> Langue disponible et traduite <br>
- `LANGUAGE_CODE`
> valeur par défaut : `fr`
>> Langue par défaut si non détectée <br>
### Divers
- `ADMINS`
> valeur par défaut : `[("Name", "[email protected]"),]`
>> Une liste de toutes les personnes qui reçoivent les notifications d’erreurs dans le code.<br> <br>
>> Lorsque DEBUG=False et qu’une vue lève une exception, Django envoie un courriel à ces personnes contenant les informations complètes de l’exception.<br> <br>
>> Chaque élément de la liste doit être un tuple au format « (nom complet, adresse électronique) ».<br> <br>
>> Exemple : `[('John', '[email protected]'), ('Mary', '[email protected]')]`<br> <br>
>> Dans Pod, les "admins" sont également destinataires des courriels de contact, d’encodage ou de flux RSS si la variable `CONTACT_US_EMAIL` n’est pas renseignée.<br> <br>
>> __ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#admins]()__ <br>
- `ALLOWED_HOSTS`
> valeur par défaut : `['localhost']`
>> Une liste de chaînes représentant des noms de domaine/d’hôte que ce site Django peut servir.<br> <br>
>> C’est une mesure de sécurité pour empêcher les attaques d’en-tête Host HTTP, qui sont possibles même avec bien des configurations de serveur Web apparemment sécurisées.<br> <br>
>> __ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#allowed-hosts]()__ <br>
- `BASE_DIR`
> valeur par défaut : `os.path.dirname(os.path.dirname(os.path.abspath(__file__)))`
>> répertoire de base <br>
- `CACHES`
> valeur par défaut : `{}`
>> CACHES = { <br>
>> # … default cache config and others <br>
>> # "default": { <br>
>> # "BACKEND": "django.core.cache.backends.locmem.LocMemCache", <br>
>> # }, <br>
>> "default": { <br>
>> "BACKEND": "django_redis.cache.RedisCache", <br>
>> "LOCATION": "redis://127.0.0.1:6379/1", <br>
>> "OPTIONS": { <br>
>> "CLIENT_CLASS": "django_redis.client.DefaultClient", <br>
>> }, <br>
>> }, <br>
>> # Persistent cache setup for select2 (NOT DummyCache or LocMemCache). <br>
>> "select2": { <br>
>> "BACKEND": "django_redis.cache.RedisCache", <br>
>> "LOCATION": "redis://127.0.0.1:6379/2", <br>
>> "OPTIONS": { <br>
>> "CLIENT_CLASS": "django_redis.client.DefaultClient", <br>
>> }, <br>
>> }, <br>
>> } <br>
- `CSRF_COOKIE_SECURE`
> valeur par défaut : ` not DEBUG`
>> Ces 3 variables servent à sécuriser la plateforme en passant l’ensemble des requetes en https. Idem pour les cookies de session et de cross-sites qui seront également sécurisés<br> <br>
>> Il faut les passer à False en cas d’usage du runserver (phase de développement / debugage)<br> <br>
>> __ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#secure-ssl-redirect]()__ <br>
- `DEBUG`
> valeur par défaut : `True`
>> Une valeur booléenne qui active ou désactive le mode de débogage.<br> <br>
>> Ne déployez jamais de site en production avec le réglage DEBUG activé.<br> <br>
>> __ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#debug]()__ <br>
- `LOGIN_URL`
> valeur par défaut : `/authentication_login/`
>> url de redirection pour l’authentification de l’utilisateur <br>
>> voir : [https://docs.djangoproject.com/fr/3.2/ref/settings/#login-url]() <br>
- `MANAGERS`
> valeur par défaut : `[]`
>> Dans Pod, les "managers" sont destinataires des courriels de fin d’encodage (et ainsi des vidéos déposées sur la plateforme).<br> <br>
>> Le premier manager renseigné est également contact des flus RSS.<br> <br>
>> Ils sont aussi destinataires des courriels de contact si la variable `CONTACT_US_EMAIL` n’est pas renseignée.<br> <br>
>> __ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#managers]()__ <br>
- `PROXY_HOST`
> valeur par défaut : ``
>> Utilisation du proxy - host <br>
- `PROXY_PORT`
> valeur par défaut : ``
>> Utilisation du proxy - port <br>
- `SECRET_KEY`
> valeur par défaut : `A_CHANGER`
>> La clé secrète d’une installation Django.<br> <br>
>> Elle est utilisée dans le contexte de la signature cryptographique, et doit être définie à une valeur unique et non prédictible.<br> <br>
>> Vous pouvez utiliser ce site pour en générer une : [https://djecrety.ir/]()<br> <br>
>> __ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#secret-key]()__ <br>
- `SECURE_SSL_REDIRECT`
> valeur par défaut : `not DEBUG`
- `SESSION_COOKIE_AGE`
> valeur par défaut : `14400`
>> _Valeur par défaut : 14400 (secondes, soit 4 heures)_<br> <br>
>> L’âge des cookies de sessions, en secondes. <br>
- `SESSION_COOKIE_SAMESITE`
> valeur par défaut : `Lax`
>> Cette option empêche le cookie d’être envoyé dans les requêtes inter-sites, ce qui prévient les attaques CSRF et rend impossible certaines méthodes de vol du cookie de session. <br>
>> Voir [https://docs.djangoproject.com/en/3.2/ref/settings/#std-setting-SESSION_COOKIE_SAMESITE]() <br>
- `SESSION_COOKIE_SECURE`
> valeur par défaut : ` not DEBUG`
- `SESSION_EXPIRE_AT_BROWSER_CLOSE`
> valeur par défaut : `True`
>> Indique s’il faut que la session expire lorsque l’utilisateur ferme son navigateur. <br>
- `SITE_ID`
> valeur par défaut : `1`
>> L’identifiant (nombre entier) du site actuel. Peut être utilisé pour mettre en place une instance multi-tenant et ainsi gérer dans une même base de données du contenu pour plusieurs sites.<br> <br>
>> __ref : [https://docs.djangoproject.com/fr/3.2/ref/settings/#site-id]()__ <br>
- `TEST_SETTINGS`
> valeur par défaut : `False`
>> permet de vérifier si la configuration de la plateforme est en mode test <br>
- `THIRD_PARTY_APPS`
> valeur par défaut : `[]`
>> Liste des applications tierces accessibles. <br>
>>
>> ```
>> THIRD_PARTY_APPS = ["enrichment", "live"]
>>
>> ```
- `TIME_ZONE`
> valeur par défaut : `UTC`
>> Une chaîne représentant le fuseau horaire pour cette installation.<br> <br>
>> __ref: [https://docs.djangoproject.com/fr/3.2/ref/settings/#std:setting-TIME_ZONE]()__ <br>
>> Liste des adresses destinataires des courriels de contact <br>
### Obsolescence
- `ACCOMMODATION_YEARS`
> valeur par défaut : `{}`
>> Durée d’obsolescence personnalisée par Affiliation <br>
>>
>> ```
>> ACCOMMODATION_YEARS = {
>> 'affiliate': 1
>> }
>>
>> ```
- `ARCHIVE_OWNER_USERNAME`
> valeur par défaut : `"archive"`
>> Nom de l’utilisateur pour l’archivage des vidéos. <br>
- `POD_ARCHIVE_AFFILIATION`
> valeur par défaut : `[]`
>> Affiliations pour lesquelles on souhaite archiver la vidéo plutôt que de la supprimer. <br>
>> Si l’affiliation du propriétaire est dans cette variable, alors les vidéos sont affectées à un utilisateur précis <br>
>> que l’on peut spécifier via le paramètre `ARCHIVE_OWNER_USERNAME`. <br>
>> Elles sont mises en mode brouillon et le mot "archived" est ajouté à leur titre. <br>
>> Enfin, elles sont également ajoutées à l’ensemble `Vidéo à Supprimer` (accessible via l’interface d’admin). <br>
>>
>> ```python
>> POD_ARCHIVE_AFFILIATION = ['faculty',
>> 'staff',
>> 'employee',
>> 'affiliate',
>> 'alum',
>> 'library-walk-in',
>> 'researcher',
>> 'retired',
>> 'emeritus',
>> 'teacher',
>> 'registered-reader',
>> 'member']
>>
>> ```
- `WARN_DEADLINES`
> valeur par défaut : `[60, 30, 7]`
>> Liste de jours de délais avant l’obsolescence de la vidéo. <br>
>> À chaque délai, le propriétaire reçoit un mail d’avertissement pour éventuellement changer la date d’obsolescence de sa vidéo. <br>
### Modèle
- `COOKIE_LEARN_MORE`
> valeur par défaut : ``
>> Ce paramètre permet d’afficher un lien "En savoir plus" <br>
>> sur la boite de dialogue d’information sur l’usage des cookies dans Pod. <br>
>> On peut préciser un lien vers les mentions légales ou page dpo <br>
- `DARKMODE_ENABLED`
> valeur par défaut : `False`
>> Activation du mode sombre <br>
- `DYSLEXIAMODE_ENABLED`
> valeur par défaut : `False`
>> Activation du mode dyslexie <br>
- `HIDE_CHANNEL_TAB`
> valeur par défaut : `False`
>> Si True, permet de cacher l’onglet chaine dans la barre de menu du haut. <br>
- `HIDE_DISCIPLINES`
> valeur par défaut : `False`
>> Si True, permet de ne pas afficher les disciplines dans la colonne de droite <br>
- `HIDE_LANGUAGE_SELECTOR`
> valeur par défaut : `False`
>> Si True, permet de cacher le sélecteur de langue dans le menu du haut. <br>
- `HIDE_SHARE`
> valeur par défaut : `False`
>> Si True, permet de ne pas afficher les liens de partage sur les réseaux sociaux dans la colonne de droite. <br>
- `HIDE_TAGS`
> valeur par défaut : `False`
>> Si True, permet de ne pas afficher le nuage de mots clés dans la colonne de droite. <br>
- `HIDE_TYPES`
> valeur par défaut : `False`
>> si True, permet de ne pas afficher la liste des types dans la colonne de droite <br>
- `HIDE_TYPES_TAB`
> valeur par défaut : `False`
>> Si True, permet de cacher l’entrée 'type' dans le menu de navigation. <br>
- `HIDE_USERNAME`
> valeur par défaut : `False`
>> Voir description dans authentification <br>
>> Si valeur vaut 'True', le username de l’utilisateur ne sera pas visible sur la plate-forme Pod et <br>
>> si la valeur vaut 'False' le username sera affichés aux utilisateurs authentifiés. (par soucis du respect du RGPD) <br>
- `HIDE_USER_FILTER`
> valeur par défaut : `False`
>> Si 'True', le filtre des vidéos par utilisateur ne sera plus visible <br>
>> si 'False' le filtre sera visible qu’aux personnes authentifiées. <br>
>> (par soucis du respect du RGPD) <br>
- `HIDE_USER_TAB`
> valeur par défaut : `False`
>> Si valeur vaut 'True', l’onglet Utilisateur ne sera pas visible <br>
>> et si la valeur vaut 'False' l’onglet Utilisateur ne sera visible <br>
>> qu’aux personnes authentifiées. <br>
>> (par soucis du respect du RGPD) <br>
- `HOMEPAGE_NB_VIDEOS`
> valeur par défaut : `12`
>> Nombre de vidéos à afficher sur la page d’accueil. <br>
- `HOMEPAGE_SHOWS_PASSWORDED`
> valeur par défaut : `False`
>> Afficher les vidéos dont l’accès est protégé par mot de passe sur la page d’accueil. <br>
- `HOMEPAGE_SHOWS_RESTRICTED`
> valeur par défaut : `False`
>> Afficher les vidéos dont l’accès est protégé par authentification sur la page d’accueil. <br>
- `MENUBAR_HIDE_INACTIVE_OWNERS`
> valeur par défaut : `True`
>> Les utilisateurs inactifs ne sont plus affichés dans la barre de menu utilisateur. <br>
- `MENUBAR_SHOW_STAFF_OWNERS_ONLY`
> valeur par défaut : `False`
>> Les utilisateurs non staff ne sont plus affichés dans la barre de menu utilisateur. <br>
- `SHIB_NAME`
> valeur par défaut : `Identify Federation`
>> Nom de la fédération d’identité utilisée <br>
>> Affiché sur le bouton de connexion si l’authentification shibboleth est utilisée. <br>
- `SHOW_EVENTS_ON_HOMEPAGE`
> valeur par défaut : `False`
>> Si True, affiche les prochains évènements sur la page d’accueil. <br>
- `SHOW_ONLY_PARENT_THEMES`
> valeur par défaut : `False`
>> Si True, affiche uniquement les thèmes de premier niveau dans l’onglet 'Chaîne'. <br>
- `TEMPLATE_VISIBLE_SETTINGS`
> valeur par défaut : `{}`
>>
>> ```
>> TEMPLATE_VISIBLE_SETTINGS = {
>> # Titre du site.
>> 'TITLE_SITE': 'Pod',
>>
>> # Description du site.
>> 'DESC_SITE': 'L’objectif d’Esup-Pod est de faciliter la mise à disposition de vidéos et ainsi d’encourager son utilisation dans l’enseignement et la recherche.',
>>
>> # Titre de l’établissement.
>> 'TITLE_ETB': 'University name',
>>
>> # Logo affiché en haut à gauche sur toutes les pages.
>> # Doit se situer dans le répertoire static
>> 'LOGO_SITE': 'img/logoPod.svg',
>>
>> # Logo affiché dans le footer sur toutes les pages.
>> # Doit se situer dans le répertoire static
>> 'LOGO_ETB': 'img/logo_etb.svg',
>>
>> # Logo affiché sur le player video.
>> # Doit se situer dans le répertoire static
>> 'LOGO_PLAYER': 'img/pod_favicon.svg',
>>
>> # Lien de destination du logo affiché sur le player
>> 'LINK_PLAYER': '',
>>
>> # Texte affiché dans le footer. Une ligne par entrée, accepte du code html.
>> # Par exemple :
>> # ( '42, rue Paul Duez',
>> # '59000 Lille - France',
>> # ('<a href="https://goo.gl/maps/AZnyBK4hHaM2"'
>> # ' target="_blank">Google maps</a>') )
>> 'FOOTER_TEXT': ('',),
>>
>> # Icone affichée dans la barre d'adresse du navigateur
>> 'FAVICON': 'img/pod_favicon.svg',
>>
>> # Si souhaitée, à créer et sauvegarder
>> # dans le répertoire static de l'application custom et
>> # préciser le chemin d'accès. Par exemple : "custom/etab.css"
>> 'CSS_OVERRIDE': '',
>>
>> # Vous pouvez créer un template dans votre application custom et
>> # indiquer son chemin dans cette variable pour que ce code html,
>> # ce template soit affiché en haut de votre page, le code est ajouté
>> # juste après la balise body.(Hors iframe)
>> # Si le fichier créé est
>> # '/opt/django_projects/podv3/pod/custom/templates/custom/preheader.html'
>> # alors la variable doit prendre la valeur 'custom/preheader.html'
>> 'PRE_HEADER_TEMPLATE': '',
>>
>> # Idem que pre-header, le code contenu dans le template
>> # sera affiché juste avant la fermeture du body. (Or iframe)
>> 'POST_FOOTER_TEMPLATE': '',
>>
>> # vous pouvez créer un template dans votre application custom
>> # pour y intégrer votre code Piwik ou Google analytics.
>> # Ce template est inséré dans toutes les pages de la plateforme,
>> # y compris en mode iframe
>> 'TRACKING_TEMPLATE': '',
>> }
>>
>> ```
### Transcodage
- `TRANSCRIPTION_AUDIO_SPLIT_TIME`
> valeur par défaut : `600`
>> Découpage de l’audio pour la transcription. <br>
- `TRANSCRIPTION_MODEL_PARAM`
> valeur par défaut : `{}`
>> Paramétrage des modèles pour la transcription <br>
>> Voir la documentation à cette adresse : [https://www.esup-portail.org/wiki/display/ES/Installation+de+l%27autotranscription+en+Pod+V3]() <br>
>> Pour télécharger les Modeles Vosk : [https://alphacephei.com/vosk/models]() <br>
>>
>> ```
>> TRANSCRIPTION_MODEL_PARAM = {
>> # le modèle stt
>> 'STT': {
>> 'fr': {
>> 'model': "/path/to/project/Esup-Pod/transcription/model_fr/stt/output_graph.tflite",
>> 'scorer': "/path/to/project/Esup-Pod/transcription/model_fr/stt/kenlm.scorer",
>> }
>> },
>> # le modèle vosk
>> 'VOSK': {
>> 'fr': {
>> 'model': "/path/of/project/Esup-Pod/transcription/model_fr/vosk/vosk-model-fr-0.6-linto-2.2.0",
>> }
>> }
>> }
>>
>> ```
- `TRANSCRIPTION_NORMALIZE`
> valeur par défaut : `False`
>> Activation de la normalisation de l’audio avant sa transcription. <br>
- `TRANSCRIPTION_NORMALIZE_TARGET_LEVEL`
> valeur par défaut : `-16.0`
>> Niveau de normalisation de l’audio avant sa transcription. <br>
- `TRANSCRIPTION_STT_SENTENCE_BLANK_SPLIT_TIME`
> valeur par défaut : `0.5`
>> Temps maximum en secondes des blancs entre chaque mot pour le decoupage des sous-titres avec l’outil STT. <br>
- `TRANSCRIPTION_STT_SENTENCE_MAX_LENGTH`
> valeur par défaut : `3`
>> Temps en secondes maximum pour une phrase lors de la transcription avec l’outil STT. <br>
- `TRANSCRIPTION_TYPE`
> valeur par défaut : `STT`
>> Choix de l’outil pour la transcription : STT ou VOSK. <br>
- `TRANSCRIPT_VIDEO`
> valeur par défaut : `start_transcript`
>> Fonction appelée pour lancer la transcription des vidéos. <br>
- `USE_TRANSCRIPTION`
> valeur par défaut : `False`
>> Activation de la transcription. <br>
## Configuration Générale de la plateforme Esup_Pod
### Configuration application authentification.
- `AFFILIATION`
> valeur par défaut : ``
>> Valeurs possibles pour l’affiliation du compte. <br>
- `AFFILIATION_EVENT`
> valeur par défaut : ``
>> Groupes ou affiliations des personnes autorisées à créer un évènement. <br>
- `AFFILIATION_STAFF`
> valeur par défaut : ``
>> Les personnes ayant pour affiliation les valeurs <br>
>> renseignées dans cette variable ont automatiquement <br>
>> la valeur staff de leur compte à True. <br>
- `AUTH_CAS_USER_SEARCH`
> valeur par défaut : `user`
>> Variable utilisée pour trouver les informations de l’individu <br>
>> connecté dans le fichier renvoyé par le CAS lors de l’authentification. <br>
- `AUTH_LDAP_BIND_DN`
> valeur par défaut : ``
>> Identifiant (DN) du compte pour se connecter au serveur LDAP. <br>
- `AUTH_LDAP_BIND_PASSWORD`
> valeur par défaut : ``
>> Mot de passe du compte pour se connecter au serveur LDAP. <br>
- `AUTH_LDAP_USER_SEARCH`
> valeur par défaut : ``
>> Filtre LDAP permettant la recherche de l’individu dans le serveur LDAP. <br>
- `AUTH_TYPE`
> valeur par défaut : ``
>> Type d’authentification possible sur votre instance. <br>
>> Choix : local, CAS, OIDC, Shibboleth <br>
- `CAS_ADMIN_AUTH`
> valeur par défaut : `False`
>> Permet d’activer l’authentification CAS pour la partie admin <br>
>> Voir : [https://pypi.org/project/django-cas-sso/]() <br>
- `CAS_FORCE_LOWERCASE_USERNAME`
> valeur par défaut : `False`
>> Forcer le passage en minuscule du nom d’utilisateur CAS <br>
>> (permet de prévenir des doubles créations de comptes dans certain cas). <br>
- `CAS_GATEWAY`
> valeur par défaut : `False`
>> Si True, authentifie automatiquement l’individu <br>
>> si déjà authentifié sur le serveur CAS <br>
- `CAS_LOGOUT_COMPLETELY`
> valeur par défaut : `True`
>> Voir [https://github.com/kstateome/django-cas]() <br>
- `CAS_SERVER_URL`
> valeur par défaut : `sso_cas`
>> Url du serveur CAS de l’établissement. Format http://url_cas <br>
- `CREATE_GROUP_FROM_AFFILIATION`
> valeur par défaut : `False`
>> Si True, des groupes sont créés automatiquement <br>
>> à partir des affiliations des individus qui se connectent sur la plateforme <br>
>> et l’individu qui se connecte est ajouté automatiquement à ces groupes. <br>
- `CREATE_GROUP_FROM_GROUPS`
> valeur par défaut : `False`
>> Si True, des groupes sont créés automatiquement <br>
>> à partir des groupes (attribut groups à memberOf) <br>
>> des individus qui se connectent sur la plateforme <br>
>> et l’individu qui se connecte est ajouté automatiquement à ces groupes <br>
- `DEFAULT_AFFILIATION`
> valeur par défaut : ``
>> Affiliation par défaut d’un utilisateur authentifié par OIDC. <br>
>> Ce contenu sera comparé à la liste AFFILIATION_STAFF pour déterminer si l’utilisateur doit être admin Django <br>
- `ESTABLISHMENTS`
> valeur par défaut : ``
>> [TODO] À compléter <br>
- `GROUP_STAFF`
> valeur par défaut : `AFFILIATION_STAFF`
>> utilisé dans populatedCasbackend <br>
- `HIDE_LOCAL_LOGIN`
> valeur par défaut : `False`
>> Si True, masque l’authentification locale <br>
- `HIDE_USERNAME`
> valeur par défaut : `False`
>> Si valeur vaut `True`, le username de l’utilisateur ne sera pas visible sur la plate-forme Pod et si la valeur vaut `False` le username sera affiché aux utilisateurs authentifiés. (par soucis du respect du RGPD) <br>
- `LDAP`
> valeur par défaut : ``
>> - LDAP (Interroge le serveur LDAP pour renseigner les champs) <br>
- `LDAP_SERVER`
> valeur par défaut : ``
>> Information de connection au serveur LDAP. <br>
>> Le champ url peut contenir une ou plusieurs url <br>
>> pour ajouter des hôtes de référence, exemple : <br>
>> Si un seul host : <br>
>>
>> `{'url': "ldap.univ.fr'', 'port': 389, 'use_ssl': False}`
>> Si plusieurs :
>>
>> `{'url': ("ldap.univ.fr'',"ldap2.univ.fr"), 'port': 389, 'use_ssl': False}`
- `OIDC_CLAIM_FAMILY_NAME`
> valeur par défaut : `family_name`
- `OIDC_CLAIM_GIVEN_NAME`
> valeur par défaut : `given_name`
>> Noms des Claim permettant de récupérer les attributs nom, prénom, email <br>
- `OIDC_DEFAULT_ACCESS_GROUP_CODE_NAMES`
> valeur par défaut : `[]`
>> Groupes d’accès attribués par défaut à un nouvel utilisateur authentifié par OIDC <br>
- `OIDC_DEFAULT_AFFILIATION`
> valeur par défaut : ``
>> Affiliation par défaut d’un utilisateur authentifié par OIDC. <br>
>> Ce contenu sera comparé à la liste AFFILIATION_STAFF pour déterminer si l’utilisateur doit être admin Django <br>
- `OIDC_NAME`
> valeur par défaut : ``
>> Nom du Service Provider OIDC <br>
- `OIDC_OP_AUTHORIZATION_ENDPOINT`
> valeur par défaut : `https`
- `OIDC_OP_JWKS_ENDPOINT`
> valeur par défaut : `https`
>> Différents paramètres pour OIDC <br>
>> tant que `mozilla_django_oidc` n’accepte pas le mécanisme de discovery <br>
>> ref: [https://github.com/mozilla/mozilla-django-oidc/pull/309]() <br>
- `OIDC_OP_TOKEN_ENDPOINT`
> valeur par défaut : `https`
- `OIDC_OP_USER_ENDPOINT`
> valeur par défaut : `https`
- `OIDC_RP_CLIENT_ID`
> valeur par défaut : `os.environ`
- `OIDC_RP_CLIENT_SECRET`
> valeur par défaut : `os.environ`
>>
>> `CLIENT_ID` et `CLIENT_SECRET` de OIDC sont plutôt à positionner
>> à travers des variables d’environnement.
- `OIDC_RP_SIGN_ALGO`
> valeur par défaut : ``
- `POPULATE_USER`
> valeur par défaut : `None`
>> Si utilisation de la connection CAS, renseigne les champs du compte <br>
>> de la personne depuis une source externe. <br>
>> Valeurs possibles : <br>
>> - None (pas de renseignement), <br>
>> - CAS (renseigne les champs depuis les informations renvoyées par le CAS), <br>
- `REMOTE_USER_HEADER`
> valeur par défaut : `REMOTE_USER`
>> Nom de l’attribut dans les headers qui sert à identifier <br>
>> l’utilisateur connecté avec Shibboleth. <br>
- `SHIBBOLETH_ATTRIBUTE_MAP`
> valeur par défaut : ``
>> Mapping des attributs entre shibboleth et la classe utilisateur <br>
- `SHIBBOLETH_STAFF_ALLOWED_DOMAINS`
> valeur par défaut : ``
>> Permettre à l’utilisateur d’un domaine d’être membre du personnel. <br>
>> Si vide, tous les domaines seront autorisés. <br>
- `SHIB_LOGOUT_URL`
> valeur par défaut : ``
>> URL de déconnexion à votre instance Shibboleth <br>
- `SHIB_NAME`
> valeur par défaut : ``
>> Nom de la fédération d’identité utilisée. <br>
- `SHIB_URL`
> valeur par défaut : ``
>> URL de connexion à votre instance Shibboleth. <br>
- `USER_CAS_MAPPING_ATTRIBUTES`
> valeur par défaut : ``
>> Liste de correspondance entre les champs d’un compte de Pod <br>
>> et les champs renvoyés par le CAS. <br>
- `USER_LDAP_MAPPING_ATTRIBUTES`
> valeur par défaut : ``
>> Liste de correspondance entre les champs d’un compte de Pod <br>
>> et les champs renvoyés par le LDAP. <br>
- `USE_CAS`
> valeur par défaut : `False`
>> Activation de l’authentification CAS en plus de l’authentification locale. <br>
- `USE_OIDC`
> valeur par défaut : `False`
>> Mettre à True pour utiliser l’authentification OpenID Connect. <br>
- `USE_SHIB`
> valeur par défaut : `False`
>> Mettre à True pour utiliser l’authentification Shibboleth. <br>
### Configuration application chapter.
### Configuration application completion
- `ACTIVE_MODEL_ENRICH`
> valeur par défaut : `False`
>> Définissez à True pour activer la case à cocher dans l’édition des sous-titres. <br>
- `ALL_LANG_CHOICES`
> valeur par défaut : ``
>> liste toutes les langues pour l’ajout de fichier de sous-titre <br>
>> voir le fichier `pod/main/lang_settings.py`. <br>
- `DEFAULT_LANG_TRACK`
> valeur par défaut : `fr`
>> langue par défaut pour l’ajout de piste à une vidéo. <br>
- `KIND_CHOICES`
> valeur par défaut : ``
>> Liste de types de piste possibles pour une vidéo (sous-titre, légende etc.) <br>
- `LANG_CHOICES`
> valeur par défaut : ``
>> Liste des langues proposées lors de l’ajout des vidéos. <br>
>> Affichés en dessous d’une vidéo, les choix sont aussi utilisés pour affiner la recherche. <br>
- `LINK_SUPERPOSITION`
> valeur par défaut : `False`
>> Si valeur vaut 'True', les URLs contenues dans le texte de superposition seront transformées, à la lecture de la vidéo, en liens cliquables. <br>
- `MODEL_COMPILE_DIR`
> valeur par défaut : `/path/of/project/Esup-Pod/compile-model`
>> paramétrage des chemin du model pour la compilation <br>
>> Pour télécharger les modèles : [https://alphacephei.com/vosk/lm#update-process]() <br>
>> Ajouter le model dans les sous-dossier de la lang correspondants <br>
>> Exemple pour le français: `/path/of/project/Esup-Pod/compile-model/fr/` <br>
- `TRANSCRIPTION_MODEL_PARAM`
> valeur par défaut : ``
>> Paramétrage des modèles pour la transcription <br>
>> Voir la documentation à cette adresse : <br>
>> [https://www.esup-portail.org/wiki/display/ES/Installation+de+l%27autotranscription+en+Pod+V3]() <br>
>> Pour télécharger les modèles Vosk : [https://alphacephei.com/vosk/models]() <br>
>>
>> ```
>> TRANSCRIPTION_MODEL_PARAM = {
>> # le modèle stt
>> 'STT': {
>> 'fr': {
>> 'model': "/path/to/project/Esup-Pod/transcription/model_fr/stt/output_graph.tflite",
>> 'scorer': "/path/to/project/Esup-Pod/transcription/model_fr/stt/kenlm.scorer",
>> }
>> },
>> # le modèle vosk
>> 'VOSK': {
>> 'fr': {
>> 'model': "/path/of/project/Esup-Pod/transcription/model_fr/vosk/vosk-model-fr-0.6-linto-2.2.0",
>> }
>> }
>> }
>>
>> ```
- `PREF_LANG_CHOICES`
> valeur par défaut : ``
>> liste des langues à afficher en premier dans la liste des toutes les langues <br>
>> voir le fichier `pod/main/lang_settings.py` <br>
- `ROLE_CHOICES`
> valeur par défaut : ``
>> Liste de rôles possibles pour un contributeur. <br>
- `TRANSCRIPTION_TYPE`
> valeur par défaut : `STT`
>> STT ou VOSK <br>
- `USE_ENRICH_READY`
> valeur par défaut : `False `
>> voir ACTIVE_MODEL_ENRICH <br>
### Configuration application enrichment
### Configuration application live
- `AFFILIATION_EVENT`
> valeur par défaut : `['faculty', 'employee', 'staff']`
>> Groupes ou affiliations des personnes autorisées à créer un évènement <br>
- `BROADCASTER_PILOTING_SOFTWARE`
> valeur par défaut : `[]`
>> Types de logiciel de serveur de streaming utilisés. <br>
>> Actuellement disponible Wowza. Il faut préciser cette valeur pour l’activer ['Wowza', ] <br>
>> Si vous utilisez une autre logiciel, <br>
>> il faut développer une interface dans `pod/live/pilotingInterface.py` <br>
- `LIVE_CELERY_TRANSCRIPTION `
> valeur par défaut : `False`
>> Activer la transcription déportée sur une machine distante. <br>
- `DEFAULT_EVENT_PATH`
> valeur par défaut : ``
>> Chemin racine du répertoire où sont déposés temporairement les enregistrements des évènements éffectués depuis POD pour convertion en ressource vidéo (VOD) <br>
- `DEFAULT_EVENT_THUMBNAIL`
> valeur par défaut : `/img/default-event.svg`
>> Image par défaut affichée comme poster ou vignette, utilisée pour présenter l’évènement. <br>
>> Cette image doit se situer dans le répertoire `static`. <br>
- `DEFAULT_EVENT_TYPE_ID`
> valeur par défaut : `1`
>> Type par défaut affecté à un évènement direct (en général, le type ayant pour identifiant '1' est 'Other') <br>
- `DEFAULT_THUMBNAIL`
> valeur par défaut : `img/default.svg`
>> Image par défaut affichée comme poster ou vignette, utilisée pour présenter la vidéo. <br>
>> Cette image doit se situer dans le répertoire static. <br>
- `EMAIL_ON_EVENT_SCHEDULING`
> valeur par défaut : `True`
>> Si True, un courriel est envoyé aux managers et à l’auteur (si DEBUG est à False) à la création/modification d’un event. <br>
- `EVENT_ACTIVE_AUTO_START`
> valeur par défaut : `False`
>> Permet de lancer automatiquement l’enregistrement sur l’interface utilisée (wowza, ) sur le broadcaster et spécifié par `BROADCASTER_PILOTING_SOFTWARE` <br>
- `EVENT_GROUP_ADMIN`
> valeur par défaut : `event admin`
>> Permet de préciser le nom du groupe dans lequel les utilisateurs peuvent planifier un évènement sur plusieurs jours. <br>
- `HEARTBEAT_DELAY`
> valeur par défaut : `45`
>> Temps (en secondes) entre deux envois d’un signal au serveur, pour signaler la présence sur un live. <br>
>> Peut être augmenté en cas de perte de performance, mais au détriment de la qualité du comptage des valeurs. <br>
- `LIVE_VOSK_MODEL`
> valeur par défaut : `{}`
>> Paramétrage des modèles pour la transcription des directs <br>
>> La documentation sera présente prochaînement <br>
>> Pour télécharger les Modèles Vosk : https://alphacephei.com/vosk/models <br>
>>
>> ```
>> LIVE_VOSK_MODEL = {
>> 'fr': {
>> 'model': "/path/of/project/django_projects/transcription/live/fr/vosk-model-small-fr-0.22",
>> }
>> }
>>
>> ```
- `LIVE_TRANSCRIPTIONS_FOLDER`
> valeur par défaut : ``
>> Dossier contenat les fichiers de sous-titre au format vtt pour les directs <br>
- `USE_BBB`
> valeur par défaut : `True`
>> Utilisation de BigBlueButton - A retirer dans les futures versions de Pod <br>
- `USE_BBB_LIVE`
> valeur par défaut : `False `
>> Utilisation du système de diffusion de Webinaires en lien avec BigBlueButton - A retirer dans les futures versions de Pod <br>
- `USE_LIVE_TRANSCRIPTION`
> valeur par défaut : `False`
>> Activer l'auto-transcription pour les directs <br>
- `VIEW_EXPIRATION_DELAY`
> valeur par défaut : `60`
>> Délai (en seconde) selon lequel une vue est considérée comme expirée si elle n’a pas renvoyé de signal depuis. <br>
### Configuration application LTI
- `LTI_ENABLED`
> valeur par défaut : `False`
>> Configuration / Activation du LTI voir pod/main/settings.py L.224 <br>
- `PYLTI_CONFIG`
> valeur par défaut : `{}`
>> Cette variable permet de configurer l’application cliente et le secret partagé <br>
>>
>> ```
>> PYLTI_CONFIG = {
>> 'consumers': {
>> '<random number string>': {
>> 'secret': '<random number string>'
>> }
>> }
>> }
>>
>> ```
### Configuration application main
- `USE_BBB`
> valeur par défaut : `True`
>> Utilisation de BigBlueButton - [TODO] À retirer dans les futures versions de Pod <br>
- `USE_BBB_LIVE`
> valeur par défaut : `False `
>> Utilisation du système de diffusion de Webinaires en lien avec BigBlueButton - [TODO] À retirer dans les futures versions de Pod <br>
- `USE_MEETING`
> valeur par défaut : `False`
>> Activation de l’application meeting <br>
- `USE_OPENCAST_STUDIO`
> valeur par défaut : `False`
>> Activation du studio opencast <br>
- `VERSION`
> valeur par défaut : ``
>> Version courante du projet <br>
### Configuration application meeting
Application Meeting pour la gestion de reunion avec BBB.<br/>
Mettre `USE_MEETING` à True pour activer cette application.<br/>
`BBB_API_URL` et `BBB_SECRET_KEY` sont obligatoires pour faire fonctionner l’application<br/>
- `BBB_API_URL`
> valeur par défaut : ``
>> Indiquer l’URL API de BBB par ex `https://webconf.univ.fr/bigbluebutton/api <br>
- `BBB_LOGOUT_URL`
> valeur par défaut : ``
>> Indiquer l’URL de retour au moment où vous quittez la réunion BBB. Ce champ est optionnel. <br>
- `BBB_MEETING_INFO`
> valeur par défaut : `{}`
>> Dictionnaire de clé:valeur permettant d’afficher les informations d’une session de réunion dans BBB <br>
>> Voici la liste par défaut <br>
>>
>> ```
>> BBB_MEETING_INFO:
>> {
>> "meetingName": _("Meeting name"),
>> "hasUserJoined": _("Has user joined?"),
>> "recording": _("Recording"),
>> "participantCount": _("Participant count"),
>> "listenerCount": _("Listener count"),
>> "moderatorCount": _("Moderator count"),
>> "attendees": _("Attendees"),
>> "attendee": _("Attendee"),
>> "fullName": _("Full name"),
>> "role": _("Role"),
>> }
>>
>> ```
- `BBB_SECRET_KEY`
> valeur par défaut : ``
>> Clé de votre serveur BBB. <br>
>> Vous pouvez récupérer cette clé à l’aide de la commande `bbb-conf --secret` sur le serveur BBB. <br>
- `MEETING_DATE_FIELDS`
> valeur par défaut : `()`
>> liste des champs du formulaire de creation d’une reunion <br>
>> les champs sont regroupés dans un ensemble de champs <br>
>>
>> ```
>> MEETING_DATE_FIELDS:
>> (
>> "start",
>> "start_time",
>> "expected_duration",
>> )
>>
>> ```
- `MEETING_DISABLE_RECORD`
> valeur par défaut : `True`
>> Mettre à True pour désactiver les enregistrements de réunion <br>
>> Configuration de l’enregistrement des réunions. <br>
>> Ce champ n’est pas pris en compte si `MEETING_DISABLE_RECORD = True`. <br>
- `MEETING_MAIN_FIELDS`
> valeur par défaut : `()`
>> Permet de définir les champs principaux du formulaire de création d’une réunion <br>
>> les champs principaux sont affichés directement dans la page de formulaire d’une réunion <br>
>>
>> ```
>> MEETING_MAIN_FIELDS:
>> (
>> "name",
>> "owner",
>> "additional_owners",
>> "attendee_password",
>> "is_restricted",
>> "restrict_access_to_groups",
>> )
>>
>> ```
- `MEETING_MAX_DURATION`
> valeur par défaut : `5`
>> permet de définir la durée maximum pour une reunion <br>
>> (en heure) <br>
- `MEETING_RECORD_FIELDS`
> valeur par défaut : `()`
>> ensemble des champs qui serotn cachés si MEETING_DISABLE_RECORD est défini à true <br>
>>
>> ```
>> MEETING_RECORD_FIELDS: ("record", "auto_start_recording", "allow_start_stop_recording")
>>
>> ```
- `MEETING_RECURRING_FIELDS`
> valeur par défaut : `()`
>> permet de définir la liste de tous les champs permettant de définir la récurrence d’une reunion <br>
>> tous ces champs sont regroupés dans un ensemble de champs affichés dans une modale <br>
>>
>> ```
>> MEETING_RECURRING_FIELDS:
>> (
>> "recurrence",
>> "frequency",
>> "recurring_until",
>> "nb_occurrences",
>> "weekdays",
>> "monthly_type",
>> )
>>
>> ```
- `RESTRICT_EDIT_MEETING_ACCESS_TO_STAFF_ONLY`
> valeur par défaut : `False`
>> Seuls les utilisateurs "staff" pourront éditer les réunions <br>
- `DEFAULT_MEETING_THUMBNAIL`
> valeur par défaut : `/img/default-meeting.svg`
>> Image par défaut affichée comme poster ou vignette, utilisée pour présenter la réunion. <br>
>> Cette image doit se situer dans le répertoire `static`. <br>
- `USE_MEETING`
> valeur par défaut : `False`
>> Activer l’application meeting <br>
### Configuration application playlist
### Configuration application podfile
- `FILES_DIR`
> valeur par défaut : `files`
>> Nom du répertoire racine où les fichiers "complémentaires" <br>
>> (hors vidéos etc.) sont téléversés. Notament utilisé par PODFILE <br>
>> À modifier principalement pour indiquer dans LOCATION votre serveur de cache si elle n’est pas sur la même machine que votre POD. <br>
- `FILE_ALLOWED_EXTENSIONS`
> valeur par défaut : `('doc', 'docx', 'odt', 'pdf', 'xls', 'xlsx', 'ods', 'ppt', 'pptx', 'txt', 'html', 'htm', 'vtt', 'srt')`
>> Extensions autorisées pour les documents téléversés dans le gestionnaire de fichier <br>
- `FILE_MAX_UPLOAD_SIZE`
> valeur par défaut : `10`
>> Poids maximum en Mo par fichier téléversé dans le gestionnaire de fichier <br>
- `IMAGE_ALLOWED_EXTENSIONS`
> valeur par défaut : `('jpg', 'jpeg', 'bmp', 'png', 'gif', 'tiff', 'webp')`
>> Extensions autorisées pour les images téléversées dans le gestionnaire de fichier <br>
### Configuration application recorder
- `ALLOW_MANUAL_RECORDING_CLAIMING`
> valeur par défaut : `False`
>> si True, active un lien dans le menu de l’utilisateur permettant de réclamer un enregistrement <br>
- `ALLOW_RECORDER_MANAGER_CHOICE_VID_OWNER`
> valeur par défaut : `True`
>> Si True, le manager de l’enregistreur pourra choisir un propriétaire de l’enregistrement. <br>
- `DEFAULT_RECORDER_ID`
> valeur par défaut : `1`
>> Ajoute un enregistreur par défaut à un enregistrement non identifiable (mauvais chemin dans le dépôt FTP) <br>
- `DEFAULT_RECORDER_PATH`
> valeur par défaut : `/data/ftp-pod/ftp/`
>> Chemin racine du répertoire où sont déposés les enregistrements <br>
>> (chemin du serveur FTP). <br>
- `DEFAULT_RECORDER_TYPE_ID`
> valeur par défaut : `1`
>> Identifiant du type de vidéo par défaut (si non spécifié). <br>
>> (Exemple : 3 pour Colloque/conférence, 4 pour Cours...) <br>
- `DEFAULT_RECORDER_USER_ID`
> valeur par défaut : `1`
>> Identifiant du propriétaire par défaut (si non spécifié) des enregistrements déposés. <br>
- `OPENCAST_DEFAULT_PRESENTER`
> valeur par défaut : `mid`
>> Permet de spécifier la valeur par défaut du placement de la vidéo du <br>
>> presenteur par rapport à la vidéo de présentation (écran) <br>
>> les valeurs possibles sont : <br>
>> * "mid" (écran et caméra ont la même taille) <br>
>> * "piph" (le presenteur, caméra, est incrusté dans la vidéo de présentation, en haut à droite) <br>
>> * "pipb" (le presenteur, caméra, est incrusté dans la vidéo de présentation, en bas à droite) <br>
>> Contenu par défaut du fichier xml pour créer le mediapackage pour le studio. <br>
>> Ce fichier va contenir toutes les spécificités de l’enregistrement <br>
>> (source, cutting, title, presenter etc.) <br>
- `OPENCAST_FILES_DIR`
> valeur par défaut : `opencast-files`
>> Permet de spécifier le dossier de stockage des enregistrements du studio avant traitement. <br>
- `OPENCAST_MEDIAPACKAGE`
> valeur par défaut : `-> see xml content`
>> Contenu par défaut du fichier xml pour créer le mediapackage pour le studio. Ce fichier va contenir toutes les spécificités de l’enregistrement (source, cutting, title, presenter etc.) <br>
>>
>> ```
>> OPENCAST_MEDIAPACKAGE = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>> <mediapackage xmlns="http://mediapackage.opencastproject.org" id="" start="">
>> <media/>
>> <metadata/>
>> <attachments/>
>> <publications/>
>> </mediapackage>"""
>>
>> ```
- `PUBLIC_RECORD_DIR`
> valeur par défaut : `records`
>> Chemin d’accès web (public) au répertoire de dépot des enregistrements (DEFAULT_RECORDER_PATH). <br>
>> Attention : penser à modifier la conf de NGINX. <br>
- `RECORDER_ADDITIONAL_FIELDS`
> valeur par défaut : `()`
>> Liste des champs supplémentaires pour le formulaire des enregistreurs. Cette liste reprend le nom des champs correspondants aux paramètres d’édition d’une vidéo (Discipline, Chaine, Theme, mots clés...). <br>
>> L’exemple suivant comporte l’ensemble des champs possibles, mais peut être allégée en fonction des besoins. <br>
>> Les vidéos seront alors générées avec les valeurs des champs supplémentaires telles que définies dans leur enregistreur. <br>
- `RECORDER_ALLOW_INSECURE_REQUESTS`
> valeur par défaut : `False`
>> Autorise la requête sur l’application en elle-même sans vérifier le certificat SSL <br>
- `RECORDER_BASE_URL`
> valeur par défaut : `https://pod.univ.fr`
>> url racine de l’instance permettant l’envoi de notification lors de la réception d’enregistrement. <br>
- `RECORDER_SELF_REQUESTS_PROXIES`
> valeur par défaut : `{"http": None, "https": None}`
>> Précise les proxy à utiliser pour une requête vers l’application elle même dans le cadre d’enregistrement par défaut force la non utilisation de proxy. <br>
- `RECORDER_SKIP_FIRST_IMAGE`
> valeur par défaut : `False`
>> Si True, permet de ne pas prendre en compte la 1ère image lors du traitement d’un fichier d’enregistrement de type AudioVideoCast. <br>
- `RECORDER_TYPE`
> valeur par défaut : `(('video', _('Video')), ('audiovideocast', _('Audiovideocast')), ('studio', _('Studio')))`
>> Type d’enregistrement géré par la plateforme. <br>
>> Un enregistreur ne peut déposer que des fichiers de type proposé par la plateforme. <br>
>> Le traitement se fait en fonction du type de fichier déposé. <br>
- `USE_OPENCAST_STUDIO`
> valeur par défaut : `False`
>> Activer l’utilisation du studio Opencast. <br>
- `USE_RECORD_PREVIEW`
> valeur par défaut : `False`
>> Si True, affiche l’icone de prévisualisation des vidéos dans la page "Revendiquer un enregistrement". <br>
### Configuration application vidéo.
- `ACTIVE_VIDEO_COMMENT`
> valeur par défaut : `True`
>> Activer les commentaires au niveau de la plateforme <br>
- `CELERY_BROKER_URL`
> valeur par défaut : `amqp://pod:xxx@localhost/rabbitpod`
>> URL de Celery pour la gestion des taches d’encodage. <br>
- `CELERY_TO_ENCODE`
> valeur par défaut : `False`
>> Utilisation de Celery pour la gestion des taches d’encodage <br>
- `CHANNEL_FORM_FIELDS_HELP_TEXT`
> valeur par défaut : ``
>> Ensemble des textes d’aide affichés avec le formulaire d’édition de chaine. <br>
>> voir pod/video/forms.py <br>
- `CHUNK_SIZE`
> valeur par défaut : `1000000`
>> Taille d’un fragment lors de l’envoi d’une vidéo <br>
>> le fichier sera mis en ligne par fragment de cette taille. <br>
- `CURSUS_CODES`
> valeur par défaut : `()`
>> Liste des cursus proposés lors de l’ajout des vidéos. <br>
>> Affichés en dessous d’une vidéos, ils sont aussi utilisés pour affiner la recherche. <br>
>>
>> ```
>> CURSUS_CODES = (
>> ('0', _("None / All")),
>> ('L', _("Bachelor’s Degree")),
>> ('M', _("Master’s Degree")),
>> ('D', _("Doctorate")),
>> ('1', _("Other"))
>> )
>>
>> ```
- `DEFAULT_DC_COVERAGE`
> valeur par défaut : `TITLE_ETB + " - Town - Country"`
>> couverture du droit pour chaque vidéo <br>
- `DEFAULT_DC_RIGHTS`
> valeur par défaut : `BY-NC-SA`
>> droit par défaut affichés dans le flux RSS si non renseigné <br>
- `DEFAULT_THUMBNAIL`
> valeur par défaut : `img/default.svg`
>> Image par défaut affichée comme poster ou vignette, utilisée pour présenter la vidéo. <br>
>> Cette image doit se situer dans le répertoire static. <br>
- `DEFAULT_TYPE_ID`
> valeur par défaut : `1`
>> Les vidéos créées sans type (par importation par exemple) seront affectées au type par défaut (en général, le type ayant pour identifiant '1' est 'Other') <br>
- `DEFAULT_YEAR_DATE_DELETE`
> valeur par défaut : `2`
>> Durée d’obsolescence par défaut (en années après la date d’ajout). <br>
- `EMAIL_ON_ENCODING_COMPLETION`
> valeur par défaut : `True`
>> Si True, un courriel est envoyé aux managers et à l’auteur (si DEBUG est à False) à la fin de l’encodage. <br>
- `EMAIL_ON_TRANSCRIPTING_COMPLETION`
> valeur par défaut : `True`
>> Si True, un courriel est envoyé aux managers et à l’auteur (si DEBUG est à False) à la fin de la transcription <br>
- `ENCODE_STUDIO`
> valeur par défaut : `start_encode_studio`
>> Fonction appelée pour lancer l’encodage du studio (merge and cut). <br>
- `ENCODE_VIDEO`
> valeur par défaut : `start_encode`
>> Fonction appelée pour lancer l’encodage des vidéos direct par thread ou distant par celery <br>
- `ENCODING_CHOICES`
> valeur par défaut : `()`
>> Encodage possible sur la plateforme. Associé à un rendu dans le cas d’une vidéo. <br>
>>
>> ```
>> ENCODING_CHOICES = (
>> ("audio", "audio"),
>> ("360p", "360p"),
>> ("480p", "480p"),
>> ("720p", "720p"),
>> ("1080p", "1080p"),
>> ("playlist", "playlist")
>> )
>>
>> ```
- `FORCE_LOWERCASE_TAGS`
> valeur par défaut : `True`
>> Les mots clés saisis lors de l’ajout de vidéo sont convertis automatiquement en minuscule. <br>
- `FORMAT_CHOICES`
> valeur par défaut : `()`
>> Format d’encodage réalisé sur la plateforme. <br>
>>
>> ```
>> FORMAT_CHOICES = (
>> ("video/mp4", "video/mp4"),
>> ("video/mp2t", "video/mp2t"),
>> ("video/webm", "video/webm"),
>> ("audio/mp3", "audio/mp3"),
>> ("audio/wav", "audio/wav"),
>> ("application/x-mpegURL", "application/x-mpegURL"),
>> )
>>
>> ```
- `LANG_CHOICES`
> valeur par défaut : ``
>> Liste des langues proposées lors de l’ajout des vidéos. <br>
>> Affichés en dessous d’une vidéos, les choix sont aussi utilisés pour affiner la recherche. <br>
- `LAUNCH_ENCODE_VIDEO`
> valeur par défaut : `encode_video`
>> Fonction appelée pour lancer l’encodage des vidéos directement (sans thread ni celery). <br>
- `LICENCE_CHOICES`
> valeur par défaut : `()`
>> Licence proposées pour les vidéos en creative commons : <br>
>>
>> ```
>> LICENCE_CHOICES = (
>> ('by', ("Attribution 4.0 International (CC BY 4.0)")),
>> ('by-nd', ("Attribution-NoDerivatives 4.0 "
>> "International (CC BY-ND 4.0)")),
>> ('by-nc-nd', ("Attribution-NonCommercial-NoDerivatives 4.0 "
>> "International (CC BY-NC-ND 4.0)")),
>> ('by-nc', ("Attribution-NonCommercial 4.0 "
>> "International (CC BY-NC 4.0)")),
>> ('by-nc-sa', ("Attribution-NonCommercial-ShareAlike 4.0 "
>> "International (CC BY-NC-SA 4.0)")),
>> ('by-sa', ("Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)"))
>> )
>>
>> ```
- `MAX_DURATION_DATE_DELETE`
> valeur par défaut : `10`
>> Fixe une durée maximale que la date de suppression d’une vidéo ne peut dépasser. <br>
>> Par défaut : 10 (Année courante + 10 ans). <br>
- `MAX_TAG_LENGTH`
> valeur par défaut : `50`
>> Les mots clés saisis lors de l’ajout de vidéo ne peuvent dépasser cette longueur. <br>
- `NOTES_STATUS`
> valeur par défaut : `()`
>> Valeurs possible pour l’accès à une note. <br>
>>
>> ```
>> NOTES_STATUS = (
>> ("0", _("Private (me only)")),
>> ("1", _("Shared with video owner")),
>> ("2", _("Public")),
>> )
>>
>> ```
- `OEMBED`
> valeur par défaut : `False`
>> Permettre l’usage du oembed, partage dans Moodle, Facebook, Twitter etc. <br>
- `ORGANIZE_BY_THEME`
> valeur par défaut : `False`
>> Affichage uniquement des vidéos de la chaîne ou du thème actuel(le). <br>
>> Affichage des sous-thèmes directs de la chaîne ou du thème actuel(le) <br>
- `RESTRICT_EDIT_VIDEO_ACCESS_TO_STAFF_ONLY`
> valeur par défaut : `False`
>> Si True, seule les personnes "Staff" peuvent déposer des vidéos <br>
- `THEME_FORM_FIELDS_HELP_TEXT`
> valeur par défaut : `""`
>> Ensemble des textes d’aide affichés avec le formulaire d’édition de theme. <br>
>> voir pod/video/forms.py <br>
>>
>> ```
>> THEME_FORM_FIELDS_HELP_TEXT = OrderedDict(
>> [
>> (
>> "{0}".format(_("Title field")),
>> [
>> _(
>> "Please choose a title as short and accurate as possible, "
>> "reflecting the main subject / context of the content."
>> ),
>> _(
>> "You can use the “Description” field below for all "
>> "additional information."
>> ),
>> ],
>> ),
>> (
>> "{0}".format(_("Description")),
>> [
>> _(
>> "In this field you can describe your content, add all needed "
>> "related information, and format the result "
>> "using the toolbar."
>> )
>> ],
>> ),
>> ]
>> )
>>
>> ```
- `USER_VIDEO_CATEGORY`
> valeur par défaut : `False`
>> Permet d’activer le fonctionnement de categorie au niveau de ses vidéos. <br>
>> Vous pouvez créer des catégories pour pouvoir ranger vos propres vidéos. <br>
>> Les catégories sont liées à l’utilisateur. <br>
- `USE_OBSOLESCENCE`
> valeur par défaut : `False`
>> Activation de l’obsolescence des video. Permet d’afficher la date de suppression de la video <br>
>> dans le formulaire d’edition et dans la partie admin. <br>
- `USE_STATS_VIEW`
> valeur par défaut : `False`
>> Permet d’activer la possibilité de voir en details le nombre de visualisation d’une vidéo durant un jour donné ou mois, <br>
>> année ou encore le nombre de vue total depuis la création de la vidéo. <br>
>> Un lien est rajouté dans la partie info lors de la lecture d’une vidéo, un lien est rajouté dans la page de visualisation d’une chaîne ou un theme <br>
>> ou encore toutes les vidéos présentes sur la plateforme. <br>
- `USE_VIDEO_EVENT_TRACKING`
> valeur par défaut : `False`
>> Ce paramètre permet d’activer l’envoi d’évènements sur le lecteur vidéo à Matomo. <br>
>> N’est utile que si le code piwik / matomo est présent dans l’instance de Esup-Pod. <br>
>> Les évènements envoyés sont : <br>
>> play, pause, seeked, ended, ratechange, fullscreen, error, loadmetadata <br>
>> Pour rajouter le code Piwik/Matomo dans votre instance de Pod, il suffit de créer un fichier `pod/custom/templates/custom/tracking.html` <br>
>> Il faut ensuite y insérer le code javascript puis dans votre fichier settings_local.py, <br>
>> de préciser dans la variable `TEMPLATE_VISIBLE_SETTINGS`: `'TRACKING_TEMPLATE': 'custom/tracking.html' <br>
- `USE_XAPI_VIDEO`
> valeur par défaut : `False`
>> Active l‘envoi d’instructions xAPI pour le lecteur vidéo. <br>
>> Attention, il faut mettre USE_XAPI à True pour que les instructions soient envoyées. <br>
- `VIDEO_ALLOWED_EXTENSIONS`
> valeur par défaut : `()`
>> Extension autorisée pour le téléversement sur la plateforme <br>
>>
>> ```
>> VIDEO_ALLOWED_EXTENSIONS = (
>> "3gp",
>> "avi",
>> "divx",
>> "flv",
>> "m2p",
>> "m4v",
>> "mkv",
>> "mov",
>> "mp4",
>> "mpeg",
>> "mpg",
>> "mts",
>> "wmv",
>> "mp3",
>> "ogg",
>> "wav",
>> "wma",
>> "webm",
>> "ts",
>> )
>>
>> ```
- `VIDEO_FORM_FIELDS`
> valeur par défaut : `__all__`
>> Liste des champs du formulaire d’édition de vidéos affichées. <br>
- `VIDEO_FORM_FIELDS_HELP_TEXT`
> valeur par défaut : ``
>> Ensemble des textes d’aide affichés avec le formulaire d’envoi de vidéo. <br>
>>
>> ```
>> VIDEO_FORM_FIELDS_HELP_TEXT = OrderedDict(
>> [
>> (
>> "{0}".format(_("File field")),
>> [
>> _("You can send an audio or video file."),
>> _("The following formats are supported: %s")
>> % ", ".join(map(str, VIDEO_ALLOWED_EXTENSIONS)),
>> ],
>> ),
>> (
>> "{0}".format(_("Title field")),
>> [
>> _(
>> "Please choose a title as short and accurate as possible, "
>> "reflecting the main subject / context of the content."
>> ),
>> _(
>> "You can use the “Description” field below for all "
>> "additional information."
>> ),
>> _(
>> "You may add contributors later using the second button of "
>> "the content edition toolbar: they will appear in the “Info” "
>> "tab at the bottom of the audio / video player."
>> ),
>> ],
>> ),
>> (
>> "{0}".format(_("Type")),
>> [
>> _(
>> "Select the type of your content. If the type you wish does "
>> "not appear in the list, please temporary select “Other” "
>> "and contact us to explain your needs."
>> )
>> ],
>> ),
>> (
>> "{0}".format(_("Additional owners")),
>> [
>> _(
>> "In this field you can select and add additional owners to the "
>> "video. These additional owners will have the same rights as "
>> "you except that they can't delete this video."
>> )
>> ],
>> ),
>> (
>> "{0}".format(_("Description")),
>> [
>> _(
>> "In this field you can describe your content, add all needed "
>> "related information, and format the result "
>> "using the toolbar."
>> )
>> ],
>> ),
>> (
>> "{0}".format(_("Date of the event field")),
>> [
>> _(
>> "Enter the date of the event, if applicable, in the "
>> "AAAA-MM-JJ format."
>> )
>> ],
>> ),
>> (
>> "{0}".format(_("University course")),
>> [
>> _(
>> "Select an university course as audience target of "
>> "the content."
>> ),
>> _(
>> "Choose “None / All” if it does not apply or if all are "
>> "concerned, or “Other” for an audience outside "
>> "the european LMD scheme."
>> ),
>> ],
>> ),
>> (
>> "{0}".format(_("Main language")),
>> [_("Select the main language used in the content.")],
>> ),
>> (
>> "{0}".format(_("Tags")),
>> [
>> _(
>> "Please try to add only relevant keywords that can be "
>> "useful to other users."
>> )
>> ],
>> ),
>> (
>> "{0}".format(_("Disciplines")),
>> [
>> _(
>> "Select the discipline to which your content belongs. "
>> "If the discipline you wish does not appear in the list, "
>> "please select nothing and contact us to explain your needs."
>> ),
>> _(
>> 'Hold down "Control", or "Command" on a Mac, '
>> "to select more than one."
>> ),
>> ],
>> ),
>> (
>> "{0}".format(_("Licence")),
>> [
>> (
>> '<a href="https://creativecommons.org/licenses/by/4.0/" '
>> 'title="%(lic)s" target="_blank">%(lic)s</a>'
>> )
>> % {"lic": _("Attribution 4.0 International (CC BY 4.0)")},
>> (
>> '<a href="https://creativecommons.org/licenses/by-nd/4.0/" '
>> 'title="%(lic)s" target="_blank">%(lic)s</a>'
>> )
>> % {
>> "lic": _(
>> "Attribution-NoDerivatives 4.0 "
>> "International (CC BY-ND 4.0)"
>> )
>> },
>> (
>> '<a href="https://creativecommons.org/licenses/by-nc-nd/4.0/" '
>> 'title="%(lic)s" target="_blank">%(lic)s</a>'
>> )
>> % {
>> "lic": _(
>> "Attribution-NonCommercial-NoDerivatives 4.0 "
>> "International (CC BY-NC-ND 4.0)"
>> )
>> },
>> (
>> '<a href="https://creativecommons.org/licenses/by-nc/4.0/" '
>> 'title="%(lic)s" target="_blank">%(lic)s</a>'
>> )
>> % {
>> "lic": _(
>> "Attribution-NonCommercial 4.0 "
>> "International (CC BY-NC 4.0)"
>> )
>> },
>> (
>> '<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" '
>> 'title="%(lic)s" target="_blank">%(lic)s</a>'
>> )
>> % {
>> "lic": _(
>> "Attribution-NonCommercial-ShareAlike 4.0 "
>> "International (CC BY-NC-SA 4.0)"
>> )
>> },
>> (
>> '<a href="https://creativecommons.org/licenses/by-sa/4.0/" '
>> 'title="%(lic)s" target="_blank">%(lic)s</a>'
>> )
>> % {
>> "lic": _(
>> "Attribution-ShareAlike 4.0 " "International (CC BY-SA 4.0)"
>> )
>> },
>> ],
>> ),
>> (
>> "{0} / {1}".format(_("Channels"), _("Themes")),
>> [
>> _("Select the channel in which you want your content to appear."),
>> _(
>> "Themes related to this channel will "
>> "appear in the “Themes” list below."
>> ),
>> _(
>> 'Hold down "Control", or "Command" on a Mac, '
>> "to select more than one."
>> ),
>> _(
>> "If the channel or Themes you wish does not appear "
>> "in the list, please select nothing and contact "
>> "us to explain your needs."
>> ),
>> ],
>> ),
>> (
>> "{0}".format(_("Draft")),
>> [
>> _(
>> "In “Draft mode”, the content shows nowhere and nobody "
>> "else but you can see it."
>> )
>> ],
>> ),
>> (
>> "{0}".format(_("Restricted access")),
>> [
>> _(
>> "If you don't select “Draft mode”, you can restrict "
>> "the content access to only people who can log in"
>> )
>> ],
>> ),
>> (
>> "{0}".format(_("Password")),
>> [
>> _(
>> "If you don't select “Draft mode”, you can add a password "
>> "which will be asked to anybody willing to watch "
>> "your content."
>> ),
>> _(
>> "If your video is in a playlist the password of your "
>> "video will be removed automatically."
>> ),
>> ],
>> ),
>> ]
>> )
>>
>> ```
- `VIDEO_MAX_UPLOAD_SIZE`
> valeur par défaut : `1`
>> Taille maximum en Go des fichiers téléversés sur la plateforme. <br>
- `VIDEO_PLAYBACKRATES`
> valeur par défaut : `[0.5, 1, 1.5, 2]`
>> Configuration des choix de vitesse de lecture pour le lecteur vidéo. <br>
- `VIDEO_RECENT_VIEWCOUNT`
> valeur par défaut : `180`
>> Durée (en nombre de jours) sur laquelle on souhaite compter le nombre de vues récentes. <br>
- `VIDEO_RENDITIONS`
> valeur par défaut : `[]`
>> Rendu serializé pour l’encodage des videos. <br>
>> Cela permet de pouvoir encoder les vidéos sans l’environnement de Pod. <br>
>>
>> ```
>> VIDEO_RENDITIONS = [
>> {
>> "resolution": "640x360",
>> "minrate": "500k",
>> "video_bitrate": "750k",
>> "maxrate": "1000k",
>> "audio_bitrate": "96k",
>> "encode_mp4": True,
>> "sites": [1],
>> },
>> {
>> "resolution": "1280x720",
>> "minrate": "1000k",
>> "video_bitrate": "2000k",
>> "maxrate": "3000k",
>> "audio_bitrate": "128k",
>> "encode_mp4": True,
>> "sites": [1],
>> },
>> {
>> "resolution": "1920x1080",
>> "minrate": "2000k",
>> "video_bitrate": "3000k",
>> "maxrate": "4500k",
>> "audio_bitrate": "192k",
>> "encode_mp4": False,
>> "sites": [1],
>> },
>> ]
>>
>> ```
- `VIDEO_REQUIRED_FIELDS`
> valeur par défaut : `[]`
>> Permet d’ajouter l’attribut obligatoire dans le formulaire d’edition et d’ajout d’une video : <br>
>> Exemple de valeur : ["discipline", "tags"] <br>
>> NB : les champs cachés et suivant ne sont pas pris en compte : <br>
>> (video, title, type, owner, date_added, cursus, main_lang) <br>
- `VIEW_STATS_AUTH`
> valeur par défaut : `False`
>> Réserve l’accès aux statistiques des vidéos aux personnes authentifiées. <br>
### Configuration application search
- `ES_INDEX`
> valeur par défaut : `pod`
>> Valeur pour l’index de ElasticSearch <br>
- `ES_MAX_RETRIES`
> valeur par défaut : `10`
>> Valeur max de tentatives pour ElasticSearch. <br>
- `ES_TIMEOUT`
> valeur par défaut : `30`
>> Valeur de timeout pour ElasticSearch. <br>
- `ES_URL`
> valeur par défaut : `["http://127.0.0.1:9200/"]`
>> Adresse du ou des instances d’Elasticsearch utilisées pour l’indexation et la recherche de vidéo. <br>
- `ES_VERSION`
> valeur par défaut : `6`
>> Version d’ElasticSearch. <br>
>> valeurs possibles 6 ou 7 (pour indiquer utiliser ElasticSearch 6 ou 7) <br>
>> pour utiliser la version 7, faire une mise à jour du paquet elasticsearch-py <br>
>>
>> `pip3 install elasticsearch==7.10.1`
>> [https://elasticsearch-py.readthedocs.io/en/v7.10.1/]()
### Configuration application xapi
Application pour l’envoi d‘instructions xAPI à un LRS.<br/>
Aucune instruction ne persiste dans Pod, elles sont toutes envoyées au LRS paramétré.<br/>
Attention, il faut configurer Celery pour l’envoi des instructions.<br/>
- `USE_XAPI`
> valeur par défaut : `False`
>> Activation de l'application xAPI <br>
- `XAPI_ANONYMIZE_ACTOR`
> valeur par défaut : `True`
>> Si False, le nom de l'utilisateur sera stocké en clair dans les statements xAPI, si True, son nom d'utilisateur sera anonymisé <br>
- `XAPI_LRS_LOGIN`
> valeur par défaut : ``
>> identifiant de connexion du LRS pour l'envoi des statements <br>
- `XAPI_LRS_PWD`
> valeur par défaut : ``
>> mot de passe de connexion du LRS pour l'envoi des statements <br>
- `XAPI_LRS_URL`
> valeur par défaut : ``
>> URL de destination pour l'envoi des statements. I.E. : https://ralph.univ.fr/xAPI/statements <br>