A GraphQL video library server (and first GraphQL schema /flex).
See schema.
query ById($id: ID!) { video(id: $id) { title } }
query ByTitle($title: String!) { videos(title: $title) { releaseYear } }
query SomeVids($count: Int!, $id: ID!) {
videos(paginate: { first: $count, after: $id }) {
...
}
}
Find .m4v files within $ROOT
.
Served at http://localhost:$PORT/video/
Similar videos (i.e., same title and release year) with different transcode profiles are combined.
query CombinedRenditions {
videos {
title
releaseYear
renditions {
url
size
quality {
resolution
videoCodec
transcodeBudget
}
}
}
}
query TargetedRenditions {
videos {
title
rendition {
hd: rendition(quality: {resolution: "1080p"}) {
url
}
dvd: rendition(quality: {resolution: "720p"}) {
url
}
sd: rendition(quality: {resolution: "480p"}) {
url
}
}
}
}
query ItunesAtoms {
videos {
title
releaseYear
description
genre
artwork {
url(geometry: {height: 640})
}
episode {
season {
series {
name
}
season
}
episode
}
}
}
If video has explicit iTunes metadata for a sortable title, use that. Otherwise, adapt the display title.
query Sortables {
videos {
sortTitle
episode {
season {
series {
sortName
}
}
}
}
}
Compatible with pagination.
query SortedVideos {
videos {
sortTitle
}
}
query SortedSeries {
series {
sortName
}
}
query SortedSeasons {
seasons {
series {
sortName
}
season
}
}
query SortedEpisodes {
episodes {
season {
series {
sortName
}
season
}
episode
}
}
query ArtworkResizing {
videos {
artwork {
base64(geometry: { height: 72 })
}
}
}