glam/schemas/20251121/linkml/modules/classes/YoutubeVideo.yaml
2026-01-17 00:08:39 +01:00

103 lines
3.2 KiB
YAML

# YoutubeVideo - Individual YouTube video metadata
# Extracted from custodian_source.yaml per Rule 38 (modular schema files)
# Extraction date: 2026-01-08
id: https://nde.nl/ontology/hc/classes/YoutubeVideo
name: YoutubeVideo
title: YoutubeVideo
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
xsd: http://www.w3.org/2001/XMLSchema#
imports:
- linkml:types
- ./Tag # for tag migration per Rule 53/56 (2026-01-16)
- ./YoutubeComment
- ./YoutubeTranscript
default_range: string
classes:
YoutubeVideo:
description: >-
Individual YouTube video metadata including video ID, title, description,
view/like/comment counts, duration, thumbnail, tags, and associated
comments and transcripts.
Ontology mapping rationale:
- class_uri is schema:VideoObject because this represents a video
as a media object on YouTube.
- close_mappings includes schema:MediaObject as the broader media
object category.
- related_mappings includes prov:Entity for provenance tracking and
schema:CreativeWork as videos are creative works.
class_uri: schema:VideoObject
close_mappings:
- schema:MediaObject
related_mappings:
- prov:Entity
- schema:CreativeWork
attributes:
video_id:
range: string
required: true
video_url:
range: uri
title:
range: string
published_at:
range: datetime
view_count:
range: integer
like_count:
range: integer
comment_count:
range: integer
video_description:
range: string
duration:
range: string
description: ISO 8601 duration format
thumbnail_url:
range: uri
definition:
range: string
description: Video quality (hd, sd)
caption_available:
range: boolean
description: Whether captions are available
# was: tag (string) - migrated per Rule 53/56 (2026-01-16)
is_or_was_categorized_as:
range: Tag
multivalued: true
inlined_as_list: true
description: |
Video tags - migrated from string tag attribute to structured Tag class.
Enables rich tag metadata including platform, hashtag flags, multilingual labels.
default_language:
range: string
description: Default language code
default_audio_language:
range: string
description: Default audio language code
category_id:
range: string
description: YouTube category ID
live_broadcast_content:
range: string
description: Live broadcast status (none, live, upcoming)
comments:
range: YoutubeComment
multivalued: true
inlined_as_list: true
description: Comments on the video
comments_fetched:
range: integer
description: Number of comments fetched
transcript:
range: YoutubeTranscript
description: Video transcript data