Quickmark fingerprinting
The Fingerprint feature is an add-on to the QuickMark forensic watermarking feature. It allows a visible message to be embedded onto high value video content as an additional counter-measure in the fight against content piracy.
Fingerprinting is independent of Watermarking, but requires common integration steps and environment as described in QuickMark forensic watermarking . In addtion, the quickmarkConfig
requires the enableFingerprint
flag to be set to true
.
let playerInstance = otvplayer(
plugins: {
otvtoolkit: {
quickmark: {
message: quickmarkMessageCallback,
error: quickmarkErrorCallback
quickmarkConfig: {
enableFingerprint: true, // for the Fingerprint add-on feature
token: "400000000",
tenant: "TEST_TENANT",
apikey: "<Contact NAGRA for your key>",
service: "<Contact NAGRA for your URL>",
secret: "<Contact NAGRA for your secret>"
},
}
}
}
});
Incorporation of SSM
The concept of Fingerprint Campaigns is defined in the SSP system whereby the fingerprint will be shown or hidden at intervals according to SSP prescribed configuration.
Details of Campaigns are out of scope for this document.
Secure Session Management is used as the Fingerprint Messenger for the application, i.e. SSM setup is required by the App with a content token containing fingerprint enabling settings.
Details of content token settings are out of scope for this document.
The SSM setup response can carry a fingerprintToken
in additional to the usual sessionToken
and heartbeat
value. The App needs to call the new API with the value of the Fingerprint Token for it to be applied.
function handleFingerprintToken(response) {
if (response && response.fingerprintToken) {
console.log("Fingerprint token updated: ", response.fingerprintToken);
player
.otvtoolkit()
.quickmarkInterface.setFingerprintToken(response.fingerprintToken);
}
}
As with SSM an interval timer of length heartbeat
should be started to renew with a post to SSM /sessisons/heartbeat
endpoint. In the response to this message a fresh fingerprintToken
can be included. As with setup, the setFingerprintToken()
API shall be called with the updated token for it to be applied.
According to the definition of the campaign, the visibility and characteristics of the fingerprint can change as a result of the heartbeat cycle.