immutulator/README.md

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