Filtro de Contenido para T!

Hoy estuve leyendo este post donde los dueños de Taringa declara que «no podemos investigar el destino final de cada uno de los 20.000 post diarios». Lejos de ser algo «colectivamente inteligente» como declaración, es una terrible boludez :). Con aplicar algunos filtros automáticos, permitir que cualquiera de forma rápida y fácil reporte los contenidos ilegales y actuando más o menos rápido en su eliminación uno se cubre el 90% del orto. El otro 10% hay que pelearlo por carta documento porque hay gente muy al pedo ahí afuera, pero ni en pedo llegamos a un juicio oral teniendo un poco de criterio :).

El problema es que filtrar a mano es caro, y además filtrar hace que nuestros usuarios bajen pues no tiene ya toda la piratería al alcance de la mano ;). Pero veamos como hacer un filtro para determinar por heurística los posts que posiblemente sean ilegales, de manera de poder revisar a mano solo los que tal ve son malos, y así bajar el trabajo necesario y por ahí bajar el costo y aumentar el profit :).

No lo voy a explicar muy en detalle, pero básicamente el programa siguiente hace un scraping de la home de T! y agarra los ‘Ultimos posts’. Para cada uno de ellos, lee el contenido y aplica una heurística muy básica para ver si es potencialmente ilegal :

require 'rubygems'
require 'net/http'
require 'hpricot'

AGENT = "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.10) Gecko/20100915 Ubuntu/10.04 (lucid) Firefox/3.6.10"

url = URI.parse("http://www.taringa.net/")
http = Net::HTTP.new("www.taringa.net")
html = http.request_get('/', {'User-Agent' => AGENT})

doc = Hpricot(html.body)
(doc/"html/body/div[2]/div[4]/div[4]/div/div[2]/ul/li/a").each do |link|
  text = http.request_get(link.attributes['href'], {'User-Agent' => AGENT})
  doc1 = Hpricot(text.body)
  content = (doc1/"html/body/div[2]/div[4]/div[4]/div/div[2]/div[2]").first.to_s

  if (content =~ /megaupload/i) || (content =~ /free/i) || (content =~ /mediafire/i) || (content =~ /fileserve/i)
    puts "#{link.inner_html.strip} posible post ilegal"
  else
    if (content =~ /Este post es privado/i)
        puts "#{link.inner_html.strip} es privado. Al menos si es ilegal no lo ve todo el mundo :)"
    else
      puts "#{link.inner_html.strip} parece legal."
    end
  end
end

Con esto podemos saber :

  • Cuantos posts parecen legales
  • Cuantos parecen ilegales
  • Cuantos no son públicos, por lo que podemos revisarlos o no, no es tan terrible

Con un poco de bash sacamos las stats :

gazer@Max:~$ ruby tfilter.rb > post.txt
54 post.txt
gazer@Max:~$ grep 'posible post ilegal' post.txt | wc -l
2

Solo el 3.7% de los posts analizados parecería ser ilegales, por lo que en lugar de tener que revisar 20.000 posts por día solo deberia revisar 740, el número es otro. Si de esos ademas sumás el report del user, seguro no te quedan mucho más y hasta por ahí lo podés moderar mientras desayunas :).

Obviamente mi filtro se basa solamente en linksharing (que es el 90% del problema de T! y del uso que sus usuarios le dan al site). Seguramente haya servicios de upload que no puse, pero para demostrar que filtrar el contenido es una terrible pelotudez y que Taringa! no lo hace porque no le conviene, alcanza y sobra :).

Posts analizados

6 comentarios en “Filtro de Contenido para T!”

  1. Si no entendí mal, aclaro que no se nada de ruby, tu script busca en el contenido y dice:

    «Si hay un enlace a megaupload o free o mediafire o fileserve, entonces el contenido es posiblemente ilegal».

    Adónde está el filtrado y la reducción de links a verificar?

    Porque un enlace provenga de tal o cual sitio automáticamente es ilegal?

    Y si solo es factible identificar la «posibilidad» de ilegalidad, no estamos de vuelta al principio? Es decir, en que hay que revisar a manopla 20.000 enlaces diarios para ver a qué apuntan.

    Me gusta

    1. > Adónde está el filtrado y la reducción de links a verificar?

      Si el 99% de tus posts tienen links a megaupload, obvio que tu ganancia en este caso es nula. Si solo el 3% de los posts tienen links, ganás un montón bajo la premisa de que si no hay link a megaupload no estas ayudando a distribuir piratería (no estas haciendo link sharing). Si no hay link, no tenes que revisarlo a mano para ver si es o no ilegal.

      > Porque un enlace provenga de tal o cual sitio automáticamente es ilegal?

      Acá yo apliqué como criterio «Soy T! y mis usuarios usan megaupload para pasarse piratería», simplemente porque fue mi premisa para la heurística, puede no ser cierta, puede no ser intencional, etc. Pero en la práctica hoy en día es válida.

      > Y si solo es factible identificar la “posibilidad” de ilegalidad, no estamos de vuelta al principio?

      No, la idea radica en que SOLO verificas los que son potencialmetne ilegales (el 3% en mi ejemplo). Los que dan «parece legal» los tomas como legales.

      Me gusta

  2. Faltaría igualmente la otra pata que alega Taringa, que es que por mas que puedan revisar todos los posts uno por uno, no se tiene acceso a un «padron» de obras protegidas y entonces, si el público común no tiene acceso a esa información parecería que la búsqueda de las infracciones quedarían en manos de el org. público que sí las tiene o bien del propio interesado, salvo que liberen esa información.
    Porque si bien hay cosas que son evidentes que sus autores no quieren que se compartan de forma pública y gratuita para cualquiera que no viva en un frasco, hay otras que no se tiene tal certeza.

    Me gusta

    1. Bueno, no se necesita si o si el acceso al padrón de obras registradas, podés hacer mucho con suposiciones, feedback de los usuarios (el famoso report button) y alguna política talibán (como por ejemplo prohibir linksharing como hacemos en 3DG). Obviamente el negocio de T! es otro, por eso no lo hacen.

      Me gusta

  3. Agrego a lo que dice Juan que aunque Taringa! tuviera la capacidad técnica (no creo que la tenga, me parece bastante más complciado que analizar si tenés enlaces a megaupload), aún así no le corresponde. No es su función comprobar que determinados contenidos que brinda un tercero sean ilegales o no. Determinar si algo es ilegal le corresponde exclusivamente a la justicia. Considerar a taringa partícipe necesario en los mencionados delitos equivale a considerar a Tramontina partícipe necesario de un montón de omicidios, pro fabricar cuchillos de cocina.

    No se debe trasladar funciones judiciales a privados. Eso es exactamente lo que buscan los lobbys de la industria del entretenimiento, para básicamente podér joder ellos a todo el que se les antoje.

    Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.