Il codice sorgente di YouTube-dl è stato rimosso da GitHub, ma gli utenti del web non l’hanno presa benissimo

Chi di voi si interessa al salvataggio dei contenuti audio/video dai siti web avrà sicuramente già sentito parlare di YouTube-dl. Si tratta di un software completamente open source, rilasciato addirittura nel pubblico dominio, che nel sito ufficiale è presentato in modo molto semplice:

YouTube-dl è un programma a riga di comando per scaricare video da YouTube.com e da qualche altro sito.

About youtube-dl

In realtà, a dispetto del nome “limitante”, il programma contiene oltre 1000 estrattori per le fonti più disparate, riunendo la potenza di strumenti esterni, quali FFmpeg, con codice scritto ad-hoc per moltissimi siti.

Concettualmente, l’idea è simile ai miei script per i siti delle TV italiane: si scrive del codice specifico che si adatta ai portali che si desidera supportare. Finora questo codice era mantenuto sulla piattaforma GitHub, la più grande comunità di sviluppatori software del mondo, di proprietà di Microsoft.

La richiesta di rimozione

Il 23 ottobre 2020, la Recording Industry Association of America (RIAA) ha presentato un’istanza di rimozione ai sensi del Digital Millenium Copyright Act (DMCA), richiedendo la rimozione del repository principale del progetto, nonché svariate versioni clonate o derivate (dette fork).

La vicenda è stata spiegata nel dettaglio su XDA Developers ma, riassumendo, la RIAA sostiene che YouTube-dl sia uno strumento atto a violare i diritti di copyright dei suoi assistiti (artisti e case discografiche). In realtà ci sono diversi aspetti problematici relativi a questa argomentazione.

Il tweet della EFF dove si spiega che YouTube-dl è uno strumento legittimo, con svariate applicazioni perfettamente legali

Come ha spiegato la Electronic Frontier Foundation (EFF), YouTube-dl è uno strumento lecito e può essere utilizzato per molti scopi assolutamente validi. Restando nell’ambito di YouTube, senza quindi citare le centinaia di altri siti web supportati, si possono scaricare video con licenza Creative Commons o nel pubblico dominio, come quelli governativi.

Inoltre, alcuni creatori di contenuti o persone che appaiono nei video usano il programma per scaricare i propri contenuti. Ne so qualcosa anch’io.

Insomma, sostenere che un software del genere sia illegale è un po’ come richiedere che sia proibita la vendita dei coltelli da cucina, in quanto oltre a sfilettare il pesce ci si possono potenzialmente fare altre cose.

Oltre a questo, la RIAA (entità americana) nella propria istanza mette insieme un’accozzaglia di motivazioni diverse, citando il DMCA (una legge statunitense) e subito dopo facendo riferimento a una decisione della Corte Regionale di Amburgo ai sensi del diritto tedesco. (?!?!?)

GitHub è un’entità americana, quindi deve sottostare alle richieste DMCA, tuttavia il fatto che tale atto abbia ripercussioni su tutti gli utenti a livello mondiale è una conseguenza che non deve essere sottovalutata.

Infine, è opportuno spiegare che l’unica possibilità che resta agli sviluppatori, volendo restare su GitHub, è quella di opporsi all’istanza, andando incontro a lunghe e costose vicende giudiziarie. In sostanza, presentare la richiesta per la RIAA è semplice ed economico, contrastarla richiede molto denaro ed è difficile, specie per un progetto open source.

Le reazioni in rete

Oltre alla citata presa di posizione della EFF (che fa quindi ben sperare in un coinvolgimento in difesa degli sviluppatori), non sono mancate numerose reazioni online.

Altre persone hanno cominciato a condividere nuove copie del codice (o, in gergo, forkare) su GitHub stesso, nonché su GitLab, BitBucket e tutte le piattaforme “alternative” ad esso, famose o meno.

Tuttavia, mi vorrei soffermare su due casi che ho visto online e che sono assolutamente fenomenali.

Innanzitutto, l’utente Twitter lrvick ha utilizzato un difetto noto da tempo a GitHub (e considerato “indegno” di essere corretto) per inserire una copia del codice sorgente di YouTube-dl direttamente all’interno del repository DMCA di GitHub.

Quindi, a livello teorico, ora la RIAA dovrebbe richiedere a GitHub di cancellare il repository di tutte le istanze DMCA, in quanto contiene il codice “incriminato”. 😀

Per farsi beffe di YouTube, invece, l’utente GitHub gasman ha condiviso un piccolo pezzo di codice e un video postato su YouTube, che contiene una codifica visuale (in binario) del codice sorgente del programma.

Scaricando e decodificando questo video, caricato su YouTube, è possibile ottenere una copia funzionante del codice di YouTube-dl

A tutti gli effetti, gli utenti ora possono usare YouTube per condividere con gli altri un software usato per scaricare i video di tale sito.

In sostanza si è scatenato un vero e proprio effetto Streisand.

Cosa fare ora

In attesa di vedere l’evolversi della vicenda, è importante capire quali opzioni rimangono per scaricare i video da YouTube e da altri siti web, per scopo personale o comunque per altri usi legittimi.

Innanzitutto, c’è da chiarire che i download del programma sul sito ufficiale sono ancora attivi. Nel dubbio, è meglio usare solo yt-dl.org e ottenere una copia del software da lì. Gli utenti Linux e macOS possono usare anche Homebrew, pip o il proprio gestore di pacchetti.

Chi preferisce provare qualche alternativa può valutare l’uso di The Stream Detector (in accoppiata con streamlink oppure ffmpeg), JDownloader o altri programmi. Nei casi più difficili, può tornare utile leggere la mia guida completa per il download dei contenuti audio e video presenti nelle pagine web.

La cosa più importante rimane, in ogni caso, diffondere la conoscenza di questa vicenda e riflettere sulle conseguenze che atti del genere possono avere sulla nostra fruizione dei contenuti web.


Aggiornamento: il 16 novembre 2020 GitHub ha annunciato di avere reintegrato il repository del progetto, anche in seguito a una risposta ufficiale di EFF e alcune modifiche effettuate sul codice sorgente.

La tua prima app Android e iOS con Ionic Framework

Chi mi segue abitualmente già lo sa, da tempo partecipo come relatore a ESC, un incontro non-profit di persone interessate al Software e Hardware Libero, all’Hacking e al DIY che si svolge a fine estate presso Forte Bazzera, vicino a Venezia.

Nel 2016 ho parlato di ricostruzione forense di NTFS, nel 2017 di Gimp e della comunità Ask Ubuntu e nel 2018 di un sistema di build automatizzato per realizzare una distribuzione Linux forense come Caine.

Anche quest’anno ho voluto dedicarmi allo sviluppo software, stavolta però ho proposto un talk riguardante la creazione di app per le piattaforme Android e iOS usando tecnologie web:

La tua prima app Android e iOS con Ionic Framework

Moltissime applicazioni per smartphone hanno una struttura simile e abbastanza semplice. Lo sviluppo nativo richiederebbe di programmarle con linguaggi e ambienti diversi a seconda della piattaforma. Ionic Framework è una piattaforma di sviluppo gratuita e open source che permette di usare una sola codebase esportando poi app ibride per Android, iOS e browser.

Il talk è stato pubblicato su YouTube, mentre potete scaricare il codice di esempio su GitHub. Sono disponibili anche le slide in formato PDF.

Ovviamente, non perdetevi gli altri talk sul canale ufficiale ESC, perché erano tutti estremamente interessanti!

Se la vostra azienda ha bisogno di un’app ma non ha il tempo o le risorse per svilupparla internamente, potete sempre contattarmi cliccando qui.

Introduzione all’intelligenza artificiale — Video del talk

Il 26 ottobre ho partecipato come relatore al Linux Day 2019 organizzato dal Gruppo Utenti GNU/Linux di Vicenza. Il filo conduttore di quest’anno era l’intelligenza artificiale e i video dei vari interventi sono stati poi pubblicati anche su YouTube.

Il mio intervento aveva un carattere piuttosto introduttivo, con lo scopo di presentare una panoramica della disciplina:

Introduzione all’intelligenza artificiale

Questo intervento si propone di fornire ai partecipanti una panoramica chiara, completa e divulgativa sull’Intelligenza Artificiale e la Computer Vision. Partendo da un’introduzione sui concetti di base, verrà spiegato il funzionamento base del Machine Learning e la sua implementazione attraverso le reti neurali. Non mancheranno cenni alle applicazioni quotidiane dell’Intelligenza Artificiale, inclusa la classificazione, la segmentazione e il riconoscimento dei testi.

Mi auguro che questo talk abbia permesso di fare un po’ di chiarezza, sottolineando come l’intelligenza artificiale abbia del potenziale enorme, ma non è perfetta e non è magia. Soprattutto, i robot non conquisteranno il mondo. 😀

Questo è il video su YouTube, come sempre di ottima qualità grazie al lavoro di montaggio di Stefano del LUG Vicenza:

Il materiale usato per la presentazione è una versione lievemente rivista di ciò che avevo presentato l’anno scorso nel ciclo di incontri Dieci volti dell’Informatica. Lo potete visionare cliccando qui.

Scaricare i video da Rai Play — L’ultimissimo script

Chi segue questo blog da un po’ di tempo sa che nel 2010 avevo pubblicato il mio primo script per salvare i video dal portale Rai, proseguendo poi nel 2012 con un secondo script rinnovato.

Erano tempi bui, in cui gli utenti Linux non potevano neppure vedere facilmente i programmi per via di Silverlight. Lo script aveva lo scopo di integrare e far riprodurre i video MP4 e i flussi MMS tramite un player nativo, per esempio VLC.

Ora i tempi sono cambiati e il sito si è evoluto numerose volte in questi ultimi 7 anni, così come i browser che usiamo per navigare. Adesso i video si possono vedere senza problemi su tutte le piattaforme, ma le numerose modifiche effettuate continuamente nell’arco di tutto questo tempo ha reso lo script precedente sempre più complicato e difficile da gestire.

Con la nuova grafica di Rai Play, ho tagliato i rami secchi, eliminando il supporto a vecchie versioni del sito, vecchi browser e vecchie abitudini di programmazione. Insomma, è stato riscritto tutto daccapo. 😀

Funzionamento dello script

Il mio script vi consente di scaricare i video da Rai Play senza dover fare alcun login. In tal caso, inibisce la finestra che invita l’utente ad accedere e attiva la navigazione quando si clicca sulle miniature dei video.

Il pulsante per i download viene inserito in due zone diverse:

  • sotto alla scheda di un episodio
  • all’interno del player video (vale solo per chi fa il login)

Quando viene premuto il pulsante, parte il processo di ricerca del video MP4. Se viene trovato un file, lo script mostra una finestra modale con il link al video. Altrimenti compare un messaggio di errore.

Estensione per il browser

Prima di installarlo, dovete aggiungere l’estensione adatta al vostro browser. Lo script è sviluppato espressamente per Greasemonkey (versione 4) e Tampermonkey, sui browser rilasciati negli ultimi 2 anni.

Altre piattaforme potrebbero funzionare ma non sono testate né è garantito alcunché. In base al vostro browser, potete usare:

Installazione dello script

A questo punto vi basta recarvi alla pagina di download per installare lo script, premendo il pulsante qui sotto. Nella pagina che si aprirà, dovrete cliccare Installa questo script.

Rai Play video download

Note importanti

Come sempre, ricordate che lo script può funzionare solo se la Rai ha caricato il file in MP4, e non sempre lo fanno. Questo non dipende da me perciò non scandalizzatevi.

Lo script funziona solo ed esclusivamente su Rai Play. Se volete continuare a scaricare da altre sezioni del sito Rai, dovrete installare il vecchio script (che ora viene esplicitamente marcato come Legacy) seguendo il post precedente.

Se vi piace lo script e lo ritenete uno strumento utile, vi ricordo che potete cliccare qui per eventuali donazioni.

Aggiornamenti futuri

Il vecchio script Rai.tv native video player and direct links – LEGACY non sarà più aggiornato. Potete naturalmente continuare a usarlo lo stesso, visto che attualmente funziona perfettamente per le altre sezioni del sito Rai.

Per quanto riguarda il nuovo Rai Play video download, vedremo per il futuro.

Come capita a ogni cambio del sito da parte della Rai, ultimamente sto notando interventi di tutti i tipi. Si passa dai commenti gentili e pazienti, a email più o meno insistenti… fino a qualche intervento al limite del passivo-aggressivo di persone che chiaramente non hanno la minima idea del lavoro che c’è dietro a tutto questo.

C’è chi mi scambia per un maggiordomo aspettandosi un aggiornamento a uno schiocco di dita (o all’invio di un commento sui social) e chi pensa che sia dovuto, scontato, ovvio che io passi il weekend a programmare uno script invece di spenderlo con gli amici.

A costo di dire qualcosa di sorprendente, io ho anche altro da fare. 😀 Dall’esperienza di questi anni sto imparando che pubblicare gli script che realizzo per me (come quelli delle TV) è sempre un rischio e porta poi a perdere un sacco di tempo in aggiornamenti e modifiche varie. Ho intitolato questo post (non a caso) “l’ultimissimo script” perché è anche un buon auspicio per il futuro. 😉

Quindi lo script continuerà ad essere quello che è sempre stato: un hobby. Ci lavoro se ho tempo, se ne ho voglia e se poi torna utile anche a me. 🙂

Come sempre, buona visione a tutti!

Abel, il sistema di build della nuova CAINE — Video e slide

Il team di ESC ha fatto come sempre uno straordinario lavoro con i video dei talk, che trovate nel canale YouTube ufficiale (alcuni sono ancora in fase di montaggio).

Il mio intervento verteva sul lavoro svolto per una delle principali distribuzioni Linux in ambito di informatica forense:

Abel, il sistema di build della nuova CAINE

CAINE è una delle distribuzioni Linux per l’informatica forense più usate al mondo. Analogamente ad altri progetti simili, l’attuale metodo di sviluppo comporta numerosi step non automatizzati. Molte delle personalizzazioni presenti nella distribuzione sono realizzate a mano, rendendo difficile tenerne traccia e valutare eventuali correzioni di bug o miglioramenti nella procedura. Abel (Automated Build Environment Lab) è un progetto che mira a produrre le nuove versioni di CAINE in modo totalmente automatizzato, tracciabile e peer-reviewed, con un ambiente di build omogeneo basato su Vagrant e numerosi script che applicano tutte le modifiche necessarie.

Lo sviluppo di Abel non è totalmente terminato, in quanto non siamo riusciti a convertire proprio tutti i passaggi di installazione in tempo per la versione 10 di CAINE. Tuttavia la struttura base è completa e infatti al talk ho parlato principalmente di quella. 🙂 Qui potete vedere la slide che descrive com’è fatto Abel:

Struttura di Abel

Questo è il video su YouTube, con un audio di ottima qualità… peccato soltanto per alcuni riferimenti che non sono stati colti da una parte dell’audience. Forse non c’erano abbastanza marshmallow in sala. 😉

Le slide sono disponibili su SlideShare (cliccate qui per il PDF):