Une application pirate de streaming pour la Freebox Révolution, non validée par Free, circule sur le web

 
Depuis toujours, sur Android, il est possible d’installer des applications non officielles et parfois pirates. Un phénomène qui arrive également sur la Freebox Révolution. 
 
Free a lancé il y a 2 ans maintenant, la possibilité de développer ses propres applications sur la Freebox Révolution en utilisant QtCreator et le plugin de développement mis à disposition par Free. N’importe qui ayant des connaissances avec le langage QML peut proposer une application à paraître sur le Freebox Player. Néanmoins ces dernières seront soumises à validation avant publication par les développeurs de la Freebox. Aucune application présentant des contenus contraires aux Conditions Générales d’Utilisation ne sera validée comme les contenus pornographiques et ceux contenant de la publicité.
 
Mais au delà des applications validées par Free, une application de streaming tourne également sur le web. A l’image des APK pour Android, cette application peut être installée en local, directement sur le disque dur de la Freebox Révolution ou depuis une clef USB. Lors de l’installation, la Freebox vous informe d’ailleurs que cette application n’a pas été validée par les équipes de Free.
 
 
Nommée BtFlix, celle-ci est une adaptation de Pop Corn Time et permet le visionnage de films en streaming (mais uniquement en anglais), via un réseau P2P. Même si l’application est légale, les contenus proposés sont eux parfaitement illégaux et les utilisateurs s’exposent à des sanctions de l’Hadopi.
 
 
Mais au delà de cette application qui propose des contenus illégaux, la possibilité de développer des applications tierces non validées par Free, permet d’envisager de nouvelles perspectives. D’ailleurs, vous pouvez accéder au code source de cette application en changeant l’extension en .zip et en dézippant le fichier.
 
Il est par exemple possible de modifier les trackers torrent, pour créer un service de partage de contenus légaux.

 

COMMENTAIRES DES LECTEURS (31)
Afficher les 25 premiers commentaires...
Posté le 25 juillet 2017 à 13h42
Herysson a écrit
En 2013 j'ai reçu un avertissement par mail, pour un telechargement avec utorrent, le mail me précisait que je pouvais réclamer ce qui avait été téléchargé, ce que j'ai fait, depuis aucune nouvelle (ils doivent avoir beaucoup de travail, pour peu de résultat).

Entre les "petits fours" avec les différents gouvernements pour avoir des augmentations de salaire et de budgets, pour les fêtes du cochon chez eux (voir leurs photos sur facebook ), ils ont beaucoup de "travail", oui.

Posté le 25 juillet 2017 à 15h56

On la trouve ou, cette appli ?

Posté le 25 juillet 2017 à 22h01
LeBretonDu29 a écrit
On la trouve ou, cette appli ?

Ici 

Mais au delà des applications validées par Free, une application de streaming tourne également sur le web. A l’image des APK pour Android, cette application peut être installée en local, directement sur le disque dur de la Freebox Révolution ou depuis une clef USB. Lors de l’installation, la Freebox vous informe d’ailleurs que cette application n’a pas été validée par les équipes de Free

Posté le 25 juillet 2017 à 23h10

.import fbx.web 1.0 as Web
.import fbx.async 1.0 as Async

function Client()
{
//https://yts.ag/api
this.host = "https://yts.ag/api/v2"
this.client = new Web.Rest.Client(this.host, {
//http_transaction_factory: Web.Http.Transaction.debug_factory
});

this.client.add("list_movies.json");
this.client.add("movie_details.json");

this.limit = 20
}

Client.prototype.getHome = function() {
var t = [
{name: "Les plus partagés", type: "movies_seed"},
{name: "Les plus récents", type: "movies_recent"},
{name: "Les meilleurs films", type: "movies_top_rating"},
{name: "Les plus populaires", type: "movies_popular"},
{name: "Les plus mauvais films", type: "movies_bad_rating"},
]
return Async.Deferred.resolved(t)
}

Client.prototype.getContent = function(type, params) {
switch (type) {
case "movies_seed" :
params.sort_by = "seeds"
params.order_by = "desc"
return this.getMovies(params)
case "movies_recent" :
params.sort_by = "date_added"
params.order_by = "desc"
return this.getMovies(params)
case "movies_top_rating" :
params.sort_by = "rating"
params.order_by = "desc"
return this.getMovies(params)
case "movies_popular":
params.sort_by = "like_count"
params.order_by = "desc"
return this.getMovies(params)
case "movies_bad_rating" :
params.sort_by = "rating"
params.order_by = "asc"
return this.getMovies(params)
}
}

Client.prototype.getMovies = function(params) {
if (!params)
params = {}
if (!params.limit)
params.limit = this.limit

return this.client["list_movies.json"].read(params).then(function(res) {
if (!res) return {}
var next = (res.data.limit == res.data.movies.length) ? true : false
var items = [];
for (var i = 0; i < res.data.movies.length; i++) {
var movie = res.data.movies[i]
items.push(movie)
}
return {
page: params.page || 0,
limit: params.limit,
next: next,


items: items
}
})
}

Client.prototype.getMovie = function(id) {
return this.client["movie_details.json"].read({movie_id: id})
}

Client.prototype.createDownloaderClient = function (token)
{
this.authz = new Web.FreeboxOSAuth.Client({
app_token: token,
http_transaction_factory: Web.Http.Transaction.debug_factory
});
this.clientDownload = new Web.FreeboxOS.Client({
http_transaction_factory: this.authz.http_transaction_factory
});

this.clientDownload.add("downloads");
this.clientDownload.downloads.add("files");
this.clientDownload.downloads.add("erase");
this.clientDownload.downloads.add("add", {
"content-type": "application/x-www-form-urlencoded"
});

this.downloadEnabled = true
}

Client.prototype.getDownloads = function() {
return this.clientDownload.downloads.read();
}

Client.prototype.download = function (url) {
var params = {download_url: url}
return this.clientDownload.downloads.add.create(params)
}

Client.prototype.getDownload = function(id) {
return this.clientDownload.downloads(id).read();
}

Client.prototype.fileList = function(id) {
return this.clientDownload.downloads(id).files.read();
}

Client.prototype.removeDownload = function(id){
return this.clientDownload.downloads(id).erase.destroy();
}

Client.prototype.updateStatus = function(id, status) {
return this.clientDownload.downloads(id).update({status: status});
}

Client.prototype.constructor = Client;

Voici un des fichiers à modifier si vous voulez du contenu en français, légal si bien, si un développeur ce penche dessus j'espère pouvoir regarder des super films (libre de droit) en français aussi simplement. Ya plus qu'à 

Merci 

Posté le 30 juillet 2017 à 23h56
Grad-Bzh a écrit
sebsti a écrit tower41000 a écrit  et se faire choper par hadopi, quel bonheur... Hadopi ne surveille pas le streaming.hadopi n'est pas efficace, il n'y a qu'à regarder les chiffres de réelles condamnations pour s'en rendre compte. honnêtement qui a encore peur d'hadopi? Moi j'ai peur, quand je télécharge je me mets sous les couvertures pour ne pas qu'on me voit
On ne te voit pas mais on entend le clic de ta souris quand tu vas récupérer ton téléchargement.


Snir
Envoyer message
 
263 points
Posté le 31 juillet 2017 à 19h00
anthonylover62 a écrit
.import fbx.web 1.0 as Web.import fbx.async 1.0 as Async function Client(){ //https://yts.ag/api this.host = "https://yts.ag/api/v2" this.client = new Web.Rest.Client(this.host, { //http_transaction_factory: Web.Http.Transaction.debug_factory }); this.client.add("list_movies.json"); this.client.add("movie_details.json"); this.limit = 20} Client.prototype.getHome = function() { var t = [ {name: "Les plus partagés", type: "movies_seed"}, {name: "Les plus récents", type: "movies_recent"}, {name: "Les meilleurs films", type: "movies_top_rating"}, {name: "Les plus populaires", type: "movies_popular"}, {name: "Les plus mauvais films", type: "movies_bad_rating"}, ] return Async.Deferred.resolved(t)} Client.prototype.getContent = function(type, params) { switch (type) { case "movies_seed" : params.sort_by = "seeds" params.order_by = "desc" return this.getMovies(params) case "movies_recent" : params.sort_by = "date_added" params.order_by = "desc" return this.getMovies(params) case "movies_top_rating" : params.sort_by = "rating" params.order_by = "desc" return this.getMovies(params) case "movies_popular": params.sort_by = "like_count" params.order_by = "desc" return this.getMovies(params) case "movies_bad_rating" : params.sort_by = "rating" params.order_by = "asc" return this.getMovies(params) }} Client.prototype.getMovies = function(params) { if (!params) params = {} if (!params.limit) params.limit = this.limit return this.client["list_movies.json"].read(params).then(function(res) { if (!res) return {} var next = (res.data.limit == res.data.movies.length) ? true : false var items = []; for (var i = 0; i < res.data.movies.length; i++) { var movie = res.data.movies[i] items.push(movie) } return { page: params.page || 0, limit: params.limit, next: next, items: items } })} Client.prototype.getMovie = function(id) { return this.client["movie_details.json"].read({movie_id: id})} Client.prototype.createDownloaderClient = function (token){ this.authz = new Web.FreeboxOSAuth.Client({ app_token: token, http_transaction_factory: Web.Http.Transaction.debug_factory }); this.clientDownload = new Web.FreeboxOS.Client({ http_transaction_factory: this.authz.http_transaction_factory }); this.clientDownload.add("downloads"); this.clientDownload.downloads.add("files"); this.clientDownload.downloads.add("erase"); this.clientDownload.downloads.add("add", { "content-type": "application/x-www-form-urlencoded" }); this.downloadEnabled = true} Client.prototype.getDownloads = function() { return this.clientDownload.downloads.read();} Client.prototype.download = function (url) { var params = {download_url: url} return this.clientDownload.downloads.add.create(params)} Client.prototype.getDownload = function(id) { return this.clientDownload.downloads(id).read();} Client.prototype.fileList = function(id) { return this.clientDownload.downloads(id).files.read();} Client.prototype.removeDownload = function(id){ return this.clientDownload.downloads(id).erase.destroy();} Client.prototype.updateStatus = function(id, status) { return this.clientDownload.downloads(id).update({status: status});} Client.prototype.constructor = Client; Voici un des fichiers à modifier si vous voulez du contenu en français, légal si bien, si un développeur ce penche dessus j'espère pouvoir regarder des super films (libre de droit) en français aussi simplement. Ya plus qu'à  Merci 

Tu te répètes...

RUBRIQUE COMMENTAIRE
Bonjour , avant de poster, veuillez vous assurer d'avoir pris connaissance des règles.

X

Quatre consignes avant de réagir :

  • Rester dans le cadre de l'article. Pour des discussions plus générales, vous pouvez utiliser nos forums.
  • Développer son argumentation. Les messages dont le seul but est de mettre de l'huile sur le feu seront modifiés ou effacés sans préavis par la rédaction.
  • Respecter les acteurs de l'informatique et les autres lecteurs. Les messages agressifs, vulgaires, haineux, etc. seront modifiés ou effacés sans préavis par la rédaction.
  • Pour toute remarque concernant une faute dans l'article, merci de nous contacter exclusivement par le formulaire "signaler une erreur" lors de la sélection du texte de l'article (les commentaires portants sur ce sujet seront systématiquement supprimés).