web-dev-qa-db-fra.com

Comment vérifier si un fichier est protégé par DRM?

Comment vérifier si un fichier donné, tel qu'un fichier audio, est protégé ou non par DRM?

5
N.N.

Audio DRM est principalement spécifique au format en ce que la plupart des formats compatibles DRM sont facilement identifiables par leur conteneur, ce qui est généralement reflété dans leur extension. Ceci permet au joueur de savoir de quoi il s'agit, sans avoir à analyser le fichier. Un exemple courant est un fichier AAC que vous pourriez acheter sur iTunes. S'il est protégé avec FairPlay DRM, le fichier est nommé .m3p (vs le fichier non protégé .m4a).

Rien n'empêche les entreprises de chiffrer un .mp3 et de laisser l'extension identique - cela va simplement gêner les utilisateurs lorsqu'ils passent à l'un des milliards de lecteurs MP3 disponibles et cela ne fonctionne pas.

Pour la vidéo, les choses peuvent être un peu plus compliquées. Certains formats de conteneur vidéo prennent en charge la gestion des droits numériques afin que leur extension ne change pas nécessairement. Je suggérerais d'essayer d'obtenir ffmpeg ou themonospot pour analyser chaque fichier.

Voici une petite fonction bash que je viens d'écrire qui permet de récupérer les codecs d'un fichier:

function codec() {
    ffmpeg -i "$1" 2>&1 | grep Stream | grep -Eo '(Audio|Video)\: [^ ,]+'
}

En action:

oli@bert:~/Desktop$ codec "The Beatles - 01 - Back In The U.S.S.R.mp3"
Audio: mp3

Vous pouvez réduire encore davantage ce nombre, mais essayez-le avec des supports connus contenant des DRM et voyez ce qui se passe. Ça va exploser ou vous parler du DRM.

Quoi qu'il en soit, une fois que vous savez à quoi vous attendre, vous pouvez grouper cela ou quelque chose de similaire pour vous dire rapidement quels fichiers ont un DRM.

1
Oli

Pour déterminer le DRM en vidéo, vous pouvez utiliser ffmpeg -i <filename>

Par exemple. Sur un film acheté auprès d’Apple, cela se voit dans la sortie:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] ignoring 'frma' atom of 'mp4a', stream format is 'drms'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] ignoring 'frma' atom of 'avc1', stream format is 'drmi'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] ignoring 'frma' atom of 'ac-3', stream format is 'drms'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] stream 0, timescale not set
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] Could not find codec parameters for stream 1 (Video: none (drmi / 0x696D7264), none, 1920x1032, 5234 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] Could not find codec parameters for stream 2 (Audio: none (drms / 0x736D7264), 48000 Hz, 5.1(side), 384 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] Could not find codec parameters for stream 4 (Subtitle: none (p608 / 0x38303670), 1920x1032, 0 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
0
Ray