1.6 KiB
1.6 KiB
video immutulator
Rip from video silos into ERIS.
It takes a bit of configuring. An example:
let ?ds = dataspace
<eris $ds>
<bind <ref {oid: "eris" key: #x""}> $ds #f>
<daemon video_immutulator {
argv: ["/bin/video_immutulator"]
protocol: application/syndicate
}>
? <eris ?dataspace> $dataspace [
$dataspace ? <Observe <rec immutulation _ _ _ _> _> [
$config <require-service <daemon video_immutulator>>
]
$dataspace ? <Observe <rec yt-dlp [<lit ?url> _]> _> [
let ?id = <yt-dlp $url>
$config <require-service <daemon $id>>
<daemon $id {
argv: [
"/bin/json_translator"
"yt-dlp"
"--embed-subs"
"--embed-metadata"
"--dump-json"
"--no-simulate"
"--output" "/tmp/%(id)s.%(ext)s"
$url
]
protocol: application/syndicate
}>
$config ? <service-object <daemon $id> ?cap> [
$cap ? <recv ?json> [
$dataspace <yt-dlp $url $json>
]
]
]
$config [
? <service-object <daemon video_immutulator> ?cap> [
$cap {
cachefile: "/srv/immutulator.pr"
dataspace: $dataspace
stores: [ "coap+tcp://192.168.160.1:5683" ]
}
]
]
]
And I use syndump as a frontend:
$ SYNDICATE_STEP=$(mintsturdyref '"eris"' < /dev/null) syndump '<immutulation "https://www.youtube.com/watch?v=anwy2MPT5RE" ? ? ?>'
# Output:
+ "urn:eris:B4A3BWB3NL3AG7JLQZJ3DEOH7G6FYG6LHFH2QTOV5VUEYTMK6NWTQEYVPP2JT2VN5YXXYLKKXR3MOF35DXFKTBOVTR55Z23JQO56D2S4MM" 6030153 video/webm