{"id":26928,"library":"edxval","title":"edx-val","description":"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.","status":"active","version":"4.0.0","language":"python","source_language":"en","source_url":"http://github.com/openedx/edx-val","tags":["openedx","video","django","api","edx"],"install":[{"cmd":"pip install edxval","lang":"bash","label":"PyPI"}],"dependencies":[],"imports":[{"note":"","wrong":"","symbol":"Video","correct":"from edxval.models import Video"},{"note":"","wrong":"","symbol":"create_video","correct":"from edxval.api import create_video"}],"quickstart":{"code":"from edxval.api import create_video, get_video_info\n\n# Create a video entry\nvideo = create_video(\n    client_video_id='my-video-001',\n    status='uploaded',\n    encoded_videos=[],\n    edx_video_id='edx-001'\n)\nprint(video)\n\n# Retrieve video info\ninfo = get_video_info(video['edx_video_id'])\nprint(info[\"client_video_id\"])","lang":"python","description":"Creates and retrieves video metadata using edx-val API."},"warnings":[{"fix":"Set DJANGO_SETTINGS_MODULE and call django.setup() before importing edxval.","message":"Django settings must be configured before importing edxval. Use django.setup() or configure settings via environment variable DJANGO_SETTINGS_MODULE. Otherwise get AppRegistryNotReady error.","severity":"gotcha","affected_versions":"all"},{"fix":"Use Python 3.12 or later.","message":"In v4.0.0, Python 3.11 support was dropped. Python 3.12 is now required.","severity":"deprecated","affected_versions":">=4.0.0"},{"fix":"Use `get_course_videos_qset` instead of `get_course_videos`.","message":"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.","severity":"breaking","affected_versions":">=2.9.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Call django.setup() before importing edxval or set DJANGO_SETTINGS_MODULE.","cause":"edxval requires Django setup before import.","error":"django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet."},{"fix":"Use 'from edxval.api import get_course_videos_qset' instead.","cause":"Function renamed in v2.9.0.","error":"ImportError: cannot import name 'get_course_videos' from 'edxval.api'"},{"fix":"Check the API signature: it may require passing encoded_videos as a positional argument or using create_or_update_video.","cause":"The signature changed in recent versions.","error":"TypeError: create_video() got an unexpected keyword argument 'encoded_videos'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}