edx-val
raw JSON → 4.0.0 verified Mon Apr 27 auth: no python
edx-val is a video abstraction layer and API for Open edX, handling video metadata, transcripts, and storage. It provides Django models, REST endpoints, and utilities for managing course videos. Current version is 4.0.0, dropping Python 3.11 support.
pip install edxval Common errors
error django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. ↓
cause edxval requires Django setup before import.
fix
Call django.setup() before importing edxval or set DJANGO_SETTINGS_MODULE.
error ImportError: cannot import name 'get_course_videos' from 'edxval.api' ↓
cause Function renamed in v2.9.0.
fix
Use 'from edxval.api import get_course_videos_qset' instead.
error TypeError: create_video() got an unexpected keyword argument 'encoded_videos' ↓
cause The signature changed in recent versions.
fix
Check the API signature: it may require passing encoded_videos as a positional argument or using create_or_update_video.
Warnings
gotcha Django settings must be configured before importing edxval. Use django.setup() or configure settings via environment variable DJANGO_SETTINGS_MODULE. Otherwise get AppRegistryNotReady error. ↓
fix Set DJANGO_SETTINGS_MODULE and call django.setup() before importing edxval.
deprecated In v4.0.0, Python 3.11 support was dropped. Python 3.12 is now required. ↓
fix Use Python 3.12 or later.
breaking The API function `get_course_videos` was replaced by `get_course_videos_qset` in v2.9.0. The old function may still exist but returns different types. ↓
fix Use `get_course_videos_qset` instead of `get_course_videos`.
Imports
- Video
from edxval.models import Video - create_video
from edxval.api import create_video
Quickstart
from edxval.api import create_video, get_video_info
# Create a video entry
video = create_video(
client_video_id='my-video-001',
status='uploaded',
encoded_videos=[],
edx_video_id='edx-001'
)
print(video)
# Retrieve video info
info = get_video_info(video['edx_video_id'])
print(info["client_video_id"])