如何解密AWS Elastic Transcoder HLS AES加密视频播放.m3u8?

How to decrypt AWS Elastic Transcoder HLS AES encryption video to play .m3u8?

我使用带有No Store选项的AWS弹性转码器HLS AES内容保护来加密我的.m3u8文件,如下文所述,它会自动生成一组加密密钥、加密密钥MD5和加密初始化向量。

HLS AES protection with no store

我尝试使用带有 aws-sdk 的 KMS decrypt api 的加密密钥来命中 ARN(我在我的管道中指定的)InvalidCiphertextException,但出现 InvalidCiphertextException 错误。

aws-sdk decrypt api

我的问题是,如何解密加密密钥并获得用于播放 .m3u8 文件的实际密钥(我称之为内容密钥)?

在这里我找到了解决办法!使用 AWS KMS decrypt 并按如下方式插入参数:

const kmsDecryptparams = {
  CiphertextBlob: Buffer.from(dataKey,'base64'),
  EncryptionContext: {
      service: 'elastictranscoder.amazonaws.com'
  }
};

官方文档没有给出任何答案,但你可以找到一些参考here

有一种更简单的方法:当带有 No Store 的 Elastic Transcoder 作业完成后,再次打开作业并单击任何变体播放列表旁边的锁。它在弹出窗口中显示解密值,您可以将其另存为文件。此值已被解密。