Une histoire de DRM : comment regarder Netflix sur un Mac Apple Silicon sous Linux ?

Pierre Dandumont |

Dans un long sujet, David Buchanan explique sur son blog sa quête pour tenter de faire quelque chose qui peut sembler naturel à beaucoup d'entre vous : regarder Netflix. Et avec une plateforme un peu exotique, un Mac sous Asahi Linux, ce n'est vraiment pas évident pour un résultat qui — nous le verrons — n'est pas parfait.

Une histoire de DRM

Le problème principal — expliqué dans le post — vient du fait que Netflix (tout comme Spotify, Amazon Prime Video et d'autres) se repose sur des DRM pour permettre la lecture des vidéos. Comme l'explique l'auteur, on peut ne pas aimer les DRM mais ils existent et la présence de standards pour ces derniers est un avantage dans certains cas : ils permettent de lire légalement les contenus.

Widevine, le DRM de Google.

Sous GNU/Linux, Netflix passe par les DRM Widevine de Google. Il en existe d'autres — Safari sous macOS ou Edge sous Windows n'emploient pas Widevine —, mais c'est obligatoire ici. Ce qui nous amène au premier problème : officiellement, seule la version x86-64 de Google Chrome prend en charge Widevine sous GNU/Linux. Ce n'est pas anodin : c'est aussi ce qui bloque visiblement la version ARM de Chrome pour Windows.

Dans les faits, Chrome (x86-64) passe par un blob, c'est-à-dire un morceau de code compilé qui n'est pas open source, ce qui permet à Firefox — toujours pour les machines x86 — de prendre en charge les DRM. Mais ce blob n'existe pas officiellement pour les machines ARM 64 bits.

Mais comme l'auteur l'explique, il existe des plateformes ARM qui acceptent les DRM et donc Netflix : les Chromebooks et les Raspberry Pi. Google fournit en effet le blob en question dans les Chromebooks, et il est possible de l'extraire pour l'utiliser sur une autre machine. C'est a priori la méthode employée par la fondation qui gère les cartes Raspberry Pi pour assurer la compatibilité avec Netflix.

Il y a encore un petit problème ici : le blob a été pensé pour Chrome OS qui ne fonctionne pas exactement comme une distribution GNU/Linux classique. Il faut donc prendre en compte les bizarreries de l'OS, et compiler Chromium — le pendant open source de Chrome — pour qu'il prenne en compte les DRM, ce qu'il ne fait pas par défaut.

Si vous avez une machine sous GNU/Linux qui n'est pas un Mac, ça devrait fonctionner. C'est compliqué, mais possible. Mais ce n'est pas terminé sur les Mac. Asahi Linux fonctionne en effet avec des pages de 16 ko pour la mémoire, alors que le blob attend des pages de 4 ko. Pour expliquer rapidement, il s'agit de la taille minimale pour l'adressage de la mémoire vive, et une bonne partie des systèmes se repose sur des pages de 4 ko. Cette partie est très technique dans l'article mais en résumé, le blob accepte de s'exécuter après une modification qui ne touche pas au code lui-même.

Une image proposée par l'auteur du post.

Netflix en HD

Vous pourriez vous dire « Là, ça doit être bon ». Mais en fait, non. Premièrement, il faut modifier l'User Agent du navigateur, c'est-à-dire l'identifiant qu'il emploie. En effet, Netflix ne va utiliser le blob de ChromeOS que s'il détecte ChromeOS. Mais même dans ce cas, la définition est bloquée en 720p. La raison vient du DRM : le Widevine de Google définit plusieurs niveaux de sécurité, L1, L2 et L3. Le niveau L1 — le plus sûr — repose sur une implémentation matérielle alors que le L3 effectue toutes les tâches de façon logicielle. Bien évidemment, dans notre cas de figure, la machine est uniquement certifiée L3.

Le choix d'afficher une image en 720p dépend de Netflix et plus généralement du fournisseur : certains ne fournissent même que de la SD dans ce cas de figure (c'est le cas sous Android, qui passe par une version différente de Widevine). L'affichage en 4K, lui, nécessite un autre DRM ou une certification L1. Mais ce n'est pas tout à fait vrai : Netflix peut envoyer du 1080p dans ce cas de figure. Cette possibilité n'est prévue que pour les machines sous ChromeOS, mais des extensions permettent de forcer ce mode sur une version classique de Chrome.

Sous macOS, il est possible d'afficher en 4K.

Est-ce vraiment fini ? Pas totalement. Le passage en 1080p avec un DRM Widevine L3 possède un défaut : le décodage de la vidéo s'effectue de façon logicielle, sans passer par l'accélération matérielle. Ce n'est pas réellement un souci sur un Mac Apple Silicon, mais c'en est un sur des machines moins puissantes et c'est probablement la raison de la limitation au 720p. Sur un Raspberry Pi un peu ancien, par exemple, le 1080p est inutilisable.

La conclusion de tout ceci ? Tenter de binge watcher une série Netflix sur un Mac Apple Silicon sous GNU/Linux n'est pas une partie de plaisir, mais ça reste possible de façon légale. C'est tout le point de la démonstration : même si certaines techniques employées ressemblent à du bricolage, le code n'est pas modifié.

Source

Image d'accroche : Image de starline sur Freepik

avatar fredsoo | 

J’ai un RPi4 et j’utilise une version de Chromium, Chromium Widevine effectivement qui permet de regarder toutes les plateformes de vod. Deux possibilités soit mettre un petit peu les mains dans le cambouis sinon passer par PiApps et télécharger directement la version de Chromium qui gère widevine.

avatar mrik974 | 

J’adore l’image de l’auteur, excellent sarcasme 😁

avatar Doctomac | 

Il faut vraiment être siphonné pour utiliser Linux sur Mac…..particulier sur un Mac « M ».

avatar koko256 | 

@Doctomac

Non. Normal de vouloir le meilleur système sur le meilleur matériel. Quand le M1(2,3) killer sera sorti, on pourra peut-être reconsidérer la question... mais ce n'est pas gagné ce M1 killer.

avatar Doctomac | 

@koko256

T’es ironique c’est ça 😂😂.

avatar koko256 | 

@Doctomac

Non. Linux est meilleur que Darwin. Je l'ai déjà dit dans les commentaires. Par contre, rien ne garantie que le M1 killer dépasse les processeurs Apple Silicon.

avatar Doctomac | 

@koko256

Mais bien sûr. Juste, un OS ne de limite pas à sa structure basse mais sa qualité dépend aussi de son interface utilisateur et globalement de ses fonctions, de ses logiciel etc.

Mais tu fais une blague, j’en suis sûr 😂😅.

avatar koko256 | 

@Doctomac

Pour mon utilisation d'un ordinateur, je préfère un OS stable à une belle interface graphique. Avant le MAC j'étais sous fvwm (config perso aux petits oignions), avec un petit passage par un petit wm en c++ que j'avais patché pour être plus efficace.

avatar Doctomac | 

@koko256

Pas moi et de toute façon je n’ai aucun soucis de stabilité avec macos.

avatar koko256 | 

@Doctomac

Et je ne trouve l'interface de MacOS si jolie que cela. Le dock/la barre des tâches peu utile qui prend de la place. Je ne sais jamais où le mettre. J'apprécie sur Mac Apercu pour l'édition de PDF et le client mail et seulement pour la recherche. Pages et autre mettent 2/3s à lire un word alors qu'un chromebook l'ouvre instantanément (même offline). Xcode met trois plombe à se lancer et ouvrir un malheureux fichier python ou xml. Quand aux tours des fenêtres, le style macos existe bien sûr avec les gestionnaires de fenêtres de Linux mais en plus on peut choisir parmi plein d'option (seulement deux couleurs de sélection disponible sur Mac pendant plusieurs années : bleu clair et gris, je ne sais même pas si cela a changé).
MacOS ne crache pas car les OS ne crachent plus depuis qu'ils sont totalement préemptifs (c'est-à-dire aussi pour les pilotes). C'est pareil pour windows (et Microsoft déploie plus de thunes dans son noyau qu'Apple, en tout a plus de résultats ; et en parle : https://learn.microsoft.com/fr-fr/shows/one-dev-minute/windows-has-posix-support-why). Mais il y a encore des lenteurs sur Mac dans certains cas difficiles à expliquer en 2023 (top qui prend 5% du CPU, le moniteur d'activité encore plus est un exemple qui a l'avantage d'être facile à constater mais l'inconvénient que l'on s'en fiche un peu). Et c'était pareil sous bsd.

avatar marenostrum | 

un ordinateur (avec n'importe quel système dedans) n'est qu'un outil de travail, rien d'autre. bref il sert à Produire un truc. avec ton système hyper fiable quel est ton produit ? peux tu nous le montrer ?

avatar koko256 | 

@marenostrum

Non et surtout pas à vous.

avatar marenostrum | 

tu débites pour rien alors. t'as du temps libre apparement.

avatar Kenny31i | 

@Doctomac

Merci punaise.
Je pensais que ça ne choquait que moi.

avatar mimolette51 | 

Il est marrant. J'acheterais un mac M le jour ou linux sera stable dessus, car la première chose que je ferais sera d'y supprimer mac os. Hors de question de devoir payer un abonnement ou 40 euros pour le moindre utilitaire bidon!

avatar fredsoo | 

Quelques precision au sujet de ChromiumWidevine:
https://github.com/Botspot/chromium-v84-widevine

avatar olrik53 | 

Pourquoi faire simple quand on peux faire compliqué. Et après on s'étonnera que certains se tournent vers le téléchargement illégal ou laissent tomber. M'enfin l'article est intéressant.

avatar fredsoo | 

@olrik53

On est d’accord que le torrent régle bien des problèmes 😁

avatar vincentn | 

Je suis toujours épaté par les qualités et capacités de certains de résoudre ce genre d’obstacle informatique.

Reste la problématique de ces DRM. Si on peut comprendre la volonté des ayants-droits et autres diffuseurs, si, normalement, toute entreprise ou groupe de développeurs pourraient développer et proposer une solution pour lire ce genre de contenus protégés, dans les faits les propriétaires de contenus ne certifient pas ces projets et solutions de modules (CDM) DRM, qui se limitent principalement à trois.
Celui de Microsoft, Playready, celui d’Apple, Fairplay (qu’elle ne licencie pas) et donc Widevine de Google et son bon vouloir pour valider et accepter son usage dans un produit (cf. par exemple les soucis qu’ont pu avoir des navigateurs basés sur Chromium comme Brave, Vivaldi, etc.).
Ce contrôle absolu de la diffusion de produits culturels protégés par des firmes US et particulièrement par Google/Alphabet est problématique je trouve.

avatar Kenny31i | 

@vincentn

J’ai des vidéos YouTube sans son sur AppleTV perso. J’me demande si ça vient des DRM. Du moins j’ai le son mai pas toutes les pistes. Très étrange !

avatar vincentn | 

@Kenny31i

Je dirais que cela vient en premier lieu de YouTube 😉

avatar IRONMAN65 | 

Sous Linux 😳

avatar Minileul | 

Ces DRM sont incroyable. Mercredi je lance le match à 21h00, ça ne marche pas avec MyCANAL écran noir avec problème de câbles je ne sais pas quoi. Pour pas perdre de temps j’ai regarder le match avec IPTVX en 4K 🤣 à la mi-temps j’ai remis MyCANAL en redémarrant l’Apple TV…Mais juste pour dire que ces protections embêtent juste les gens qui veulent regarder du contenues légalement et les pousses vers l’illégalité je trouve

avatar djgreg13 | 

@Minileul

C'est fatiguant
Même sur un shield ça crash
Parfois il manque le son parfois l'image parfois c'est décalé
Et ça fait jamais ça avec du contenu sans drm

avatar koko256 | 

@Minileul

Et en plus ils sont inefficaces vu que les IPTV existent.

avatar Biking Dutch Man | 

@Minileul

Est-ce qu’IPTVX est une app pour l’Apple TV?

avatar Minileul | 

@Biking Dutch Man

Oui après il faut un lien pour accéder aux films séries ou Direct

avatar plopi | 

Personnellement selon le Mac que j’utilise, je peux pas non lire Netflix, je suis sûr Mojave, donc bon…

avatar Gwynpl@ine | 

Quel intérêt ? Aucun, si tu as envie d'un GNU/Linux, tu prends une machine compatible ou en virtualisation sur Mac OS.

avatar vincentn | 

@Gwynpl@ine

L’intérêt est entier.
- Avec cet argument, GNU/Linux serait resté uniquement compatible x86 et il n’existerait qu’une seule distribution (et il aurait probablement disparu depuis). Or c’est son foisonnement et la diversité des plateformes supportées qui en font l’une de ses forces.
- L’OpenSource et sa licence le permettant, pourquoi se priver de le faire ?
- Pour la simple beauté du geste, et pour le fait que cela permet de mieux comprendre le fonctionnement et les mécanismes non ou mal documentés d’architectures logicielles et hardware. Ce qui est toujours utile.
- Permettre à des machines qui, un jour, ne seront plus supportées, de pouvoir encore les utiliser pleinement et leur donner une seconde vie grâce à ces autres OS et astuces.
- La virtualisation ou l’émulation sont des choses (très) utiles, un fonctionnement en natif l’est tout autant. Et pour ça, heureusement qu’on a des gens comme Buchanan ici avec Widevine, comme ceux, formidables, derrière Asahi et tous les autres qui font ce boulot, trouvent des solutions et les partagent à tout le monde.

avatar CorbeilleNews | 

Une idée pour avoir Netflix sur Kodi / Pi4 ?

Merci

avatar fredsoo | 

@CorbeilleNews

Sur kodi il existait un add on qui fonctionnait il y a quelques temps.
Sinon via Chromium Widevine mais sous PiOS, pas kodi.

avatar CorbeilleNews | 

@fredsoo

Jamais réussi a le faire fonctionner

avatar fredsoo | 

@CorbeilleNews

Faudra que je teste j’ai kodi 18 sur une distri Recalbox.
Je te dirai.
Mais je trouve kodi décevant. Sur le papier ça pourrait être génial mais en pratique il faut toujours avoir les mains dans le cambouis.
En revanche Netflix fonctionne impeccable avec Chromium sur mon Pi4 sous PiOS.

avatar CorbeilleNews | 

@fredsoo

Ok merci

avatar fredsoo | 

@CorbeilleNews

Salut j’ai installé Kodi 19 impossible d’installer Netflix…. Plus Kodi avance plus je trouve que c’est une usine à gaz…

CONNEXION UTILISATEUR