Skip to main content
Ctrl+K
scikit-plots homepage scikit-plots homepage
  • Introduction
  • User Guide
  • APIs Reference
  • Tutorials
  • Learn
  • Tags
    • Affiliated Packages
    • Code of Conduct
    • Community
    • Developer's Guide
    • Governance Process
    • Release History
    • Roadmap
    • About Us | Project
  • Social Media Platforms
  • PyPI
  • GitHub
  • Introduction
  • User Guide
  • APIs Reference
  • Tutorials
  • Learn
  • Tags
  • Affiliated Packages
  • Code of Conduct
  • Community
  • Developer's Guide
  • Governance Process
  • Release History
  • Roadmap
  • About Us | Project
  • Social Media Platforms
  • PyPI
  • GitHub

Section Navigation

  • ANNoy
    • Getting started
    • Architecture
    • Persistence and I/O
    • Performance and threads
    • Python API
    • Limits and troubleshooting
    • Vector Similarity Search and Vector Database
    • Annoy Index class Inheritance Diagrams (MRO)
    • ANNoy Cython
  • Metric Performance
    • Decomposition
    • Estimators
    • Metrics
  • CleanPrompt
    • Getting started
    • How it works
    • The Python API
    • The command line
    • Names, organisations and places
    • Files, records, packs and plans
    • Models, tools and agents
    • The web page and containers
    • What it protects, and what it does not
    • Troubleshooting and questions
  • Corpus
    • Getting started
    • Architecture
    • Readers, backends, and readiness
    • Fluent configuration and policies
    • Customization
    • Downloads and network boundaries
    • Retrieval and similarity
    • Formats, structured evidence, and export
    • Security and limits
    • Troubleshooting
  • Cython
    • Getting started
    • Trust and security
    • Build, cache, and import
    • Profiles and toolchains
    • Packages, templates, and workflows
    • Cache, pins, and garbage collection
    • Python API
    • Troubleshooting
    • Cython templates
      • basic_cython
      • basic_python
      • complex_cython
      • complex_python
      • devel_cython
      • devel_numcpp_cpp_api_cython
      • devel_numcpp_cpp_api_python
      • devel_numpy_c_api_cython
      • devel_numpy_c_api_python
      • devel_python
      • easy_cython
      • easy_python
      • hard_cython
      • hard_python
      • medium_cython
      • medium_python
      • mixed
      • module_cython
      • module_python
  • Decile analysis
    • Getting started
    • KDS functions
    • ModelPlotPy
    • Business and financial plots
    • Compatibility and limits
  • Missing-value imputation
    • Getting started
    • Standard imputers
    • ANNImputer
    • Index access and privacy
    • Python API
    • Limits and troubleshooting
  • Levenshtein
    • Getting started
    • How it works
    • Backends and fallback
    • Ranking and matching
    • Corpus integration
    • Performance and limits
    • Troubleshooting
  • Logging
    • Getting started
    • Levels and loggers
    • Formatting and helpers
    • Python API
    • Known limits and troubleshooting
  • MemMap
    • Getting started
    • Lifecycle and I/O
    • Protection, sync, and locking
    • Python API
    • Platform and limits
  • Mcp
    • Getting started
    • Architecture
    • Retrieval and fusion
    • Corpus and Annoy
    • Capabilities and runtime
    • Server, CLI, and security
    • Deployment and operations
    • Python API
    • Troubleshooting
    • Model Context Protocol (MCP)
  • MLflow
    • Getting started
    • Project configuration
    • Sessions and facades
    • Server and CLI
    • Providers and workflows
    • Security and readiness
    • Python API
    • Troubleshooting
  • Nc
  • Categorical preprocessing
    • Getting started
    • GetDummies
    • DummyCodeEncoder
    • Scikit-learn integration
    • Python API
    • Known limits and troubleshooting
  • KISS random number generation
    • Getting started
    • Generators and seeding
    • State and serialization
    • NumPy interop and reproducibility
    • Python API
    • Limits and troubleshooting
  • Rank-BM25
    • Getting started
    • Recipes and tokenization
    • Retrieval and identity
    • Persistence and reproducibility
    • Performance and scaling
    • Python API
    • Troubleshooting
    • Rank-BM25 Usage Scenarios
  • Seaborn
    • Getting started
    • AUC and evaluation
    • Decile and model plots
    • Data semantics and styling
    • Python API
    • Known limits and troubleshooting
  • Stats
  • Keras architecture visualization
    • Getting started
    • Layered view
    • Graph view
    • Styling and spacing
    • Python API
    • Dependencies and limits
    • Troubleshooting
  • Array API support
  • Brand
    • CLI Banner
    • Logo

development

  • C-Experimental (experimental)
  • C-Externals (experimental)
    • spotify/ANNoy Vector Index DB
    • Astropy (experimental)
    • f2py (experimental)
    • NumCpp
    • LightNumPy (experimental)
  • Experimental (experimental)
    • Pipeline
    • Do-Re-Mi
  • Externals (experimental)
    • array_api_compat
    • array_api_extra
    • Probability Plots (experimental)
    • Seaborn (experimental)
    • Matplotlib Sphinx Ext
    • Tweedie Family
  • Externals (experimental)
    • Jupyter Ext
    • Sphinx Ext
      • ANSI Sanitizer
      • PyData Component List
      • Sphinx AI Assistant
      • Sphinx AI Learn
      • Sphinx Collection
      • Sphinx Feedback
      • Sphinx Gallery Grid
      • Sphinx-Gallery JupyterLite
      • Sphinx Jinja Render
      • Sphinx LLM
      • Sphinx YouTube Core
      • Sphinx YouTube Gallery
      • Sphinx Video Directives
  • User Guide
  • Externals (experimental)
  • Bundled Sphinx extensions (experimental)
  • Sphinx YouTube Gallery

Sphinx YouTube Gallery#

_sphinx_youtube_gallery provides the youtube-gallery directive for reviewed local YouTube video/channel catalogs. It is a typed adapter: YouTube records are normalized and queried by this package, then card layout and reader controls are delegated to the generic gallery/collection stack.

Enable it#

extensions += [
    "scikitplot._externals._sphinx_ext._sphinx_youtube_gallery",
]

Required sibling extensions are loaded by setup(). Use one namespace (scikitplot... or standalone _sphinx_ext...) consistently within a Sphinx application.

Inline video catalog#

.. youtube-gallery::
   :grid-columns: 1 1 2 2

   videos:
     - id: JXtISpdDPNY
       title: Principal Component Analysis in Python
       channel: Statistics Globe
       tags: [pca, dimensionality-reduction]

A bare YAML list of videos is also accepted. A directive invocation is homogeneous: use video records or channel records, not both.

File-backed catalog#

.. youtube-gallery:: ./_data/youtube.yaml
   :group-by: channel
   :sort: -published
   :grid-columns: 1 1 2 2

Source precedence is explicit: inline content, then the positional path, then :catalog:, then youtube_catalog_path. Exactly one source is used; the directive does not silently merge multiple catalogs.

The package uses the same bounded YAML and source-tree path confinement as the generic gallery stack.

Channel views#

A native channels: catalog renders channel cards. A video catalog can also be projected offline into a deduplicated channel view:

.. youtube-gallery:: ./_data/youtube.yaml
   :view: channels
   :interactive:
   :sort-fields: title,video_count
   :collection-id: learning-channel-index

The projection is deterministic and does not query YouTube during the Sphinx build.

Build-time query versus browser controls#

Build-time options include channel/playlist/tag/match/date predicates, sorting, grouping, offset and limit. :interactive:/:searchable: add the shared local browser controls after the build-time record set has been selected.

The browser UI is progressive enhancement: a complete static gallery remains readable when JavaScript is unavailable.

Player customization#

video-* options use the validators from Sphinx YouTube core. For example, gallery-wide player width, aspect, alignment, privacy mode, title and query parameters are translated to the leaf video directive without maintaining a second option grammar.

youtube_catalog_max_embeds bounds how many video players may be emitted; youtube_catalog_path supplies a default catalog when a directive does not provide one explicitly.

Network boundary#

Rendering an existing local catalog does not require a YouTube API request. Catalog synchronization/fetch helpers are separate operations. Keep provider credentials out of RST/YAML and out of generated browser configuration.

previous

Sphinx YouTube core

next

Sphinx video directives

On this page
  • Enable it
  • Inline video catalog
  • File-backed catalog
  • Channel views
  • Build-time query versus browser controls
  • Player customization
  • Network boundary
Edit on GitHub
Show Source

© Copyright 2024 - 2026 scikit-plots developers (BSD-3 Clause License) 0.5.dev0+git.20261011.0ec25c0 2026-10-11T11:42Z.