{"id":1126,"date":"2012-11-15T23:21:01","date_gmt":"2012-11-15T22:21:01","guid":{"rendered":"http:\/\/blog.rastersoft.com\/?p=1126"},"modified":"2012-11-15T23:21:01","modified_gmt":"2012-11-15T22:21:01","slug":"1126","status":"publish","type":"post","link":"https:\/\/blog.rastersoft.com\/?p=1126","title":{"rendered":"Subtitulando"},"content":{"rendered":"<p>Estos d\u00edas estoy liado buscando alternativas a <a href=\"http:\/\/code.google.com\/p\/periscope\/\" target=\"_blank\">periscope<\/a> para bajar subt\u00edtulos de manera autom\u00e1tica. El motivo es que no es un proyecto que est\u00e9 siendo mantenido de manera razonable.<\/p>\n<p>De casualidad encontr\u00e9 <a href=\"http:\/\/subliminal.readthedocs.org\/en\/latest\/\" target=\"_blank\">subliminal<\/a>, un programa similar pero con m\u00e1s fuentes de subt\u00edtulos, y decid\u00ed echarle un ojo. La verdad es que funciona muy bien, pero tiene el inconveniente de que, al igual que periscope, est\u00e1 escrito en python, lo que significa que hay que meter una m\u00e1quina virtual completa en mi WebTV.<\/p>\n<p>Pero de casualidad encontr\u00e9 <a href=\"https:\/\/github.com\/blazt\/submarine\" target=\"_blank\">submarine<\/a>, otro programa similar pero escrito en Vala, lo que significa que puedo compilarlo en un ejecutable y ahorrarme todo el interprete de python. Por desgracia, este s\u00f3lo soporta b\u00fasquedas en <a href=\"http:\/\/www.opensubtitles.org\" target=\"_blank\">OpenSubtitles.org<\/a> y en <a href=\"http:\/\/www.podnapisi.net\" target=\"_blank\">Podnapisi.net<\/a>. Sin embargo, su modelo interno es tan sumamente sencillo que he conseguido a\u00f1adir soporte para <a href=\"http:\/\/thesubdb.com\/\" target=\"_blank\">SubDB<\/a> (el cual <a href=\"https:\/\/github.com\/rastersoft\/submarine\" target=\"_blank\">ya est\u00e1 subido a mi repositorio GIT personal<\/a> y solicitado un commit al oficial).<\/p>\n<p>Extraoficialmente tambi\u00e9n he conseguido implementar soporte para <a href=\"http:\/\/www.bierdopje.com\/\" target=\"_blank\">BierDopje<\/a>, pero ese c\u00f3digo todav\u00eda no lo puedo subir porque sigo a la espera de que me concedan una clave espec\u00edfica para la API (en estos momentos estoy usando <em>prestada<\/em> la de <strong>subliminal<\/strong>, pero cada aplicaci\u00f3n tiene que usar la suya propia).<\/p>\n<p>El uso de este portal tiene su complicaci\u00f3n, en buena medida porque mientras que SubDB utiliza un hash del archivo para buscar subt\u00edtulos, BierDopje pide el nombre de la serie, la temporada y el cap\u00edtulo. En <strong>subliminal<\/strong> se utiliza la impresionante biblioteca <a href=\"http:\/\/guessit.readthedocs.org\/en\/latest\/\" target=\"_blank\">guessit<\/a>, que, a partir del nombre del fichero, y mediante <a href=\"http:\/\/guessit.readthedocs.org\/en\/latest\/dev\/internals.html\" target=\"_blank\">una serie de heur\u00edsticos<\/a>, extrae toda la informaci\u00f3n posible sobre un fichero. Obviamente dicha biblioteca est\u00e1 escrita en python, as\u00ed que tuve que hacer una versi\u00f3n de andar por casa en Vala. El concepto b\u00e1sico es el mismo (de hecho, fusil\u00e9 todo lo que pude), pero, al estar hecha en una noche, no es tan precisa. Obviamente acepto parches para mejorarla.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estos d\u00edas estoy liado buscando alternativas a periscope para bajar subt\u00edtulos de manera autom\u00e1tica. El motivo es que no es un proyecto que est\u00e9 siendo mantenido de manera razonable. De casualidad encontr\u00e9 subliminal, un programa similar pero con m\u00e1s fuentes de subt\u00edtulos, y decid\u00ed echarle un ojo. La verdad es que funciona muy bien, pero &hellip; <a href=\"https:\/\/blog.rastersoft.com\/?p=1126\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">Subtitulando<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,5],"tags":[],"class_list":["post-1126","post","type-post","status-publish","format-standard","hentry","category-nueva-version","category-programacion"],"_links":{"self":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/1126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1126"}],"version-history":[{"count":0,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/1126\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}