Post not yet marked as solved
Because of our ASk value is exposed , we need to reset FairPlay Certificates..Anyone know how to reset FairPlay Certificates? (revoke -> recreat, or change ASk value only )
Post not yet marked as solved
Hi All,I'm testing the KSM implementation in the spc_internal_values_v2.txt file provided by the sdk we have spc payload data,but the ksm needs the entire spc container message to process the request(including the version, IV, key and certificate hash).is there a way to test the implementation?Thanks in advance
Post not yet marked as solved
Hello!Well, I am trying to get the apple fairplay demo working for safari.My manifest#EXT-X-SESSION-KEY:METHOD=AES-128,URI="XXXXXXXXX"#EXT-X-STREAM-INF:BANDWIDTH=53000,CODECS="mp4a.40.5"hls-audio=49152.m3u8And I have a method waiting for the event webkitneedkey but it is not being called. video.addEventListener('webkitneedkey', onneedkey, false);Why? What is the problem?
Hi,Refering to the "FairPlay Streaming Certificate Generation Guide"On page 7, we have created newreq.inf file and generated certreq.csr However, we didn't apply "certreq -accept newcert.pem"Then, we continue to create FPS Certificate by uploading our certreq.csr.We received the ASk and fairplay.cerWill this be a problem?Is there anyway we can amend the private key? Or do we need to resubmit FPS Deployment package to redo the process?Thanks.
Hello!We are developing a propietary KSM for our company. We have already access to our FairPlay certificate and ASK but we would like to not use production credentials in development process. We have found a development certificate (Common Name: Partner2) in "FairPlay_Streaming_Server_SDK_v4.2.0" but we have not found the associated ASK for that certificate.Where can we found the ASK?Thanks!
Post not yet marked as solved
Hi all~!I got an error code -66681 when AVPlayer starts playing, after I updated iOS version to 13.4.When I checked it on osstatus.com, it named 'kAudioQueueErr_CannotStart' from AudioToolBox.framwork.However I have no any clue what it means.Order versions have no issue. It works perfectly.FYI, I set signed cookies to AVURLAsset and it works with non-drm videos.let cookies = cookieInfo.map { HTTPCookie.cookies(withResponseHeaderFields: ["Set-Cookie": "\($0.key)=\($0.value)"], for: url) }.flatMap { $0 }
asset = AVURLAsset(url: url, options: [AVURLAssetHTTPCookiesKey : cookies])Issue occures with only drm videos.Could anybody give me some advice about this?
Post not yet marked as solved
Hi,
I am using AVPLayer for play HLS video(live, vod).
Is there any possibility to modify master manifest on the fly? The goal to remove some of variants from the playlist.
Example:
We have master manifest which contains several variants:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
http://example.com/low/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
http://example.com/lo_mid/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
http://example.com/hi_mid/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
http://example.com/high/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=64000,CODECS="mp4a.40.5"
http://example.com/audio/index.m3u8
And I want dynamically remove all variants except the last and have in the result:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=64000,CODECS="mp4a.40.5"
http://example.com/audio/index.m3u8
Thanks in advance for any help!
PS: URLProtocol doesn't suitable for this https://developer.apple.com/forums/thread/75328
Post not yet marked as solved
Hi
I wish to know where I can find documentation / sdk to user widevine and / or Fairplay in our application.
Is there any examples of using it in AVPlayer?
Thank you very much for any help.
Post not yet marked as solved
I am encoding CMAF contents and when I try to stream a DRM'd video on Safari, nothing happens and I don't even have an error code.
It is working without any problem on Chrome (widevine). Our partners can stream the content on their side but we can't, on Macbook or iPhone...
We have tested CMAF on the following iOS versions on various device types (phones and tablets):
.3
.1
.1
.1
• 14
• 14.3
It was working without any problem.
We had an issue on:
Macbook pro M1 - Big Sur 11.3.1
Safari Version 14.1 (16611.1.21.161.6)
iPhone 12.- iOS 14.5.1
Iphone 12. - iOS 14.4.2
Macbook Air Intel 2020 - Big Sur 11.2.3
Sometimes, it is working when I reload the page ... I don't know what happens...
Post not yet marked as solved
Trying to download an encrypted HLS stream we faced the following behaviour:
Setting requestCachePolicy and/or urlCache properties of URLSessionConfiguration that used to create the AVAssetDownloadURLSession seems to have no effect at all.
This is important for as since we need the HTTP caching policy to be applied for the .m3u8 manifest file of the stream.
Is this the intended behaviour of the download process or some kind of an issue?
Post not yet marked as solved
Trying to download an encrypted HLS stream we faced the following issue:
When we start a new download, calling resume() function of AVAssetDownloadTask, the download process gets stuck (not every time) and neither of urlSession(_:assetDownloadTask:didFinishDownloadingTo:) or urlSession(_:task:didCompleteWithError:) delegate functions (AVAssetDownloadDelegate) are getting called.
There are cases where not even the urlSession(_:assetDownloadTask:didLoad:totalTimeRangesLoaded:timeRangeExpectedToLoad:) delegate function is getting called.
Any suggestions on how to troubleshoot?
Post not yet marked as solved
I am trying to encrypt a live stream with FairPlay and then play it in the player. I use this method:
public void onHTTPCupertinoEncryptionKeyLiveChunk(ILiveStreamPacketizer liveStreamPacketizer, String streamName, CupertinoEncInfo encInfo, long chunkId, int mode) {
if (streamName.startsWith("aes")) {
encInfo.setEncMethod(CupertinoEncInfo.METHOD_SAMPLE_AES);
encInfo.setEncKeyFormat("com.apple.streamingkeydelivery");
encInfo.setEncKeyBytes(BufferUtils.decodeHexString("123456789ABCDEF123456789ABCDEF12"));
encInfo.setEncIVBytes(BufferUtils.decodeHexString("FEDCBA9876543210FEDCBA9876543210"));
encInfo.setEncUrl("skd://skd");
encInfo.setEncKeyFormatVersion("1");
}
I use http://player.wmspanel.com/ and I get this license https://ls-proxy.redlabs.pl/license/fps/tvnTest/fps/tvnTest?key=123456789ABCDEF123456789ABCDEF12&iv=FEDCBA9876543210FEDCBA9876543210 and https://r.dcs.redcdn.pl/file/o2/portal/prod/fairplay/cert.pub
I just want to see if I get my live license it will be work. Where could there be a mistake? maybe you know some sample players and licenses to test the DRM?
Post not yet marked as solved
Hi
My team generated the CSR for FairPlay on Windows and when we got the certificate, installing it on the machine used to generate the CSR we get the following error :
A certificate issued by the certification authority cannot be installed. Contact your administrator.
A certificate chain could not be built to a trusted root authority. 0x800b010a (-2146762486 CERT_E_CHAINING)
We did this using the instructions on the FiraPlay Streaming Credential Generation Guide.
If we install the certificate by opening the certificate and clicking on the install option, we get this error on the certificate
"Windows does not have enough information to verify this certificate"
Desperately looking for a solution. Any help would be most appreciated.
Post not yet marked as solved
Trying to download an encrypted HLS stream we faced the following behaviour:
Setting requestCachePolicy and/or urlCache properties of URLSessionConfiguration that used to create the AVAssetDownloadURLSession seems to have no effect at all.
In our application the user can add multiple encrypted HLS streams at a queue. Before adding them in queue, we make sure that the manifest gets cached using the shared URLSession like this:
URLSession.shared.configuration.urlCache = .shared
let task = URLSession.shared.dataTask(with: media.url) { _, _, _ in
self.addMediaToQueue(media)
}
task.resume()
and we setup our AVAssetDownloadURLSession like this:
// Create the configuration for the AVAssetDownloadURLSession.
let backgroundConfiguration = URLSessionConfiguration.background(withIdentifier: "AAPL-Identifier")
backgroundConfiguration.urlCache = .shared
backgroundConfiguration.requestCachePolicy = .returnCacheDataElseLoad
// Create the AVAssetDownloadURLSession using the configuration.
assetDownloadURLSession = AVAssetDownloadURLSession(
configuration: backgroundConfiguration,
assetDownloadDelegate: self,
delegateQueue: .main
)
Here is an example of the caching headers that we use:
Last-Modified: Thu, 11 Mar 2021 02:23:57 GMT
Cache-Control: max-age=604800
This is important for us since our manifest url is signed and expires after 12 hours.
Example of manifest URL:
https://example.host.gr/v1/791/888/773923397316/773923397316.ism/.m3u8[…]~hmac=ee37a750b8238745b5c8cf153ebcd0b693dd5d83
If the client followed the HTTP cache policy and didn’t request the .m3u8 manifest file over the internet, the download would start, despite the 12 hours limit.
Is this the intended behaviour of the download process or some kind of an issue? Could you suggest a workaround?
Post not yet marked as solved
Playbacking FPS content on iOS v15 Beta + Safari fails even if key request succeeds.
I've used Shaka player and other HTML5 players which ends in the same result.
Although, when trying it on AVPlayer, playback succeeds so I guess there is some problem in Safari or somewhere.
Is it a bug and will it be fixed before release?
By the way iOS v14 + Safari + FPS works with no problem.
Hi, IOS 15 Safari does not support Fairplay DRM and gives an error, other browsers like Chrome also do not work. Since IOS 15 released today, we as DRM providers are having a lot of complaints from our customers. The issue does not happen on IOS app, only for IOS browser. We have seen the same issue across multiple DRM providers, so issue is at the end of Apple and only occurs for IOS 15.
Post not yet marked as solved
I am running a spike for apple watches and one of the things that I'm evaluating now is the capability to play HLS + fairplay content offline. It seems like the only way forward is by using AVAssetDownloadTask, which is not available on watchOS. So, my question is if there is any plan to release this capability to apple watches soon or if there is any other way to do that.
Post not yet marked as solved
Hi,
we have a customer having problem with our TV Live application with its iPhone 13 iOS 15. The player raises a CoreMediaErrorDomain error -42765 upon fairplay HLS stream.
Is it possible to get a description and potential cause of this probleme to help him.
Kind regards
Cédric
Post not yet marked as solved
I recently successfully registered for the FPS certificate but I lost the ASK. How can I find it? Or I need to revoke the certificate.
I've been maintaining adaptive HLS+FairPlay streams with audio and video for years. My implementation works great. However, I'm now also implementing captions or subtitles, and I'm having trouble with the later.
I'm actually able to generate my HLS streams with WebVTT subtitles, and they work great. But as soon as I encrypt the streams, Apple players stop working (forever stall). And my fairplay implementation works perfectly when no subtitles are involved.
I'm not encrypting the webvtt chunks: they travel as plain text, as stated in Apple guidelines. I believe this may be the issue: encrypted a/v streams with an unencrypted subtitles stream. However, encrypting plain text subtitles with SAMPLE-AES has no sense to me, so far I was unable to find a single HLS example online with subtitles that also happen to have FairPlay encryption. All documents I have about FairPlay also say nothing about this,
I've also tried applying CEA-608 closed captions in the video stream, and this actually works great with FairPlay. But CEA-608 has its own issues, and so I would like to migrate that tech to WebVTT: which also works great, except when FairPlay is involved.
I understand that Apple also establishes that I could use TTML (ISMC1) inside fMP4, which I suspect may be SAMPLE-AES encryptable. However, given my customers use cases, I need to use TS format for HLS, and so I can't use fMP4.
With all this in mind, do anybody know how to properly configure HLS+FairPlay with a plain text WebVTT subtitles stream?
Please note this is about live streaming, and not VOD nor offline playback.
Thanks.