livepeer / go-tools

Utility packages used across Livepeer Go repositories.
0 stars 2 forks source link

Create transcoding provider client #7

Closed victorges closed 1 year ago

victorges commented 1 year ago

Initial implementation should include AWS MediaConvert as an implementation.

type Provider interface { Transcode(req UploadVODRequest, progress func(float64)) (TranscodeStatusCompletedMessage, error) }


 - Should create the transcoding job and wait for completion synchronously
 - On the first version, it is OK to only accept S3 (s3:// URLs) for input and output
   * Probably separate: handle moving input/output files to/from S3. This should use the drivers library, but likely should not be part of the client logic 
 - Create some unit tests for this new client (can mock MediaConvert)
cyberj0g commented 1 year ago

Sounds good! Not sure if it applies in this case, but let's keep in mind that we may be increasing attack surface by adding indirect dependencies to go-livepeer, when working on new go-tools features.

victorges commented 1 year ago

@cyberj0g that makes sense! I hadn't thought of that.

One thing I could do is just implement this as a package in the catalyst-api repository instead, which will be the only one using this at first anyway. Then if we ever want to use it in other projects we can move it here and deal with the extra indirect dep on go-livepeer (which might as well be the project wanting to use it).

Wdyt?