Lanzamiento de NewPipe 0.24.0: Adiós, KitKat

Lanzamiento de NewPipe 0.24.0: Adiós, KitKat

Hola amigos. Quitaremos la compatibilidad con Android KitKat y cambiaremos la versión mínima admitida a Lollipop, como se anunció en el repositorio hace meses.

Es bastante triste que tuviéramos que hacer esto, ya que recordamos con cariño a KitKat como uno de los mejores lanzamientos de Android, pero era esto o continuar usando una biblioteca sin parches (¡una que también se usa para acceder a Internet! ), exponiendo a nuestros usuarios a riesgos de seguridad incalculables.

Los usuarios de KitKat pueden continuar usando (bajo su propio riesgo) la versión anterior (v0.23.3) por ahora, al menos hasta que el servicio que usan implemente cambios importantes y deje de funcionar con esa versión. Si tiene el conocimiento y está interesado en mantener NewPipe Legacy, puede ponerse en contacto con el equipo. Hicimos todo lo posible para agregar algunas funciones críticas (como compatibilidad con DASH y nuevas notificaciones de video) antes de continuar con la eliminación de la compatibilidad con KitKat. Esperamos que aprecies el esfuerzo.

De todos modos, adelante con lo nuevo! Esta versión contiene un montón de cambios bajo el capó, pero el más grande es que el código del reproductor masivo se sometió a una refactorización importante para mejorar la legibilidad y reducir los gastos generales de mantenimiento. Además, hay una nueva opción para ocultar videos futuros del feed. Las miniaturas también vieron algunas mejoras visuales. Y, por último, se reescribió NewPipe ReadMe, para aquellos a los que les gustan cosas tan arcanas.

Esta publicación también contiene los cambios de las dos revisiones anteriores.

Nuevo

  • @notaLonelyDay agregó la opción de descargar videos directamente a través del menú de pulsación prolongada en las listas, una buena adición a la calidad de vida que ahorra la molestia de esperar a que se cargue la página de detalles del video.

  • @carmebar respondió a las oraciones de varias almas irritadas al agregar una opción para ocultar videos futuros (también conocidos como estrenos) del feed. Incluso habilitamos esto de forma predeterminada para su conveniencia expresa.

  • @litetex asumió la poco envidiable tarea de encontrar y eliminar todo el código de compatibilidad que se necesitaba para admitir Android KitKat. @Fs00 señaló alegremente aún más lugares donde el código antiguo podría eliminarse o reemplazarse. @TacoTheDank intervino para mantener el código actualizado.

    • Con esto, la versión mínima de Android compatible ahora es Lollipop. ¡Adiós, KitKat, siempre estarás en nuestros corazones! En una nota más positiva, este cambio tiene el efecto secundario de desbloquear varios beneficios y eliminar las limitaciones/soluciones que eran necesarias para admitir una versión de Android que (al momento de escribir) tiene 9 años.

    • Relacionado con esto, y la fuerza impulsora real detrás de este cambio: @TacoTheDank actualizó la biblioteca OkHttp, que NewPipe usa para acceder a Internet, de 3.12.13 a 4.10.0. La rama 3.x ha quedado obsoleta desde principios de año, y dado que OkHttp es una biblioteca crítica que se utiliza para realizar solicitudes HTTP a la salvaje y peligrosa Internet, era imperativo pasar a la rama 4.x compatible actualmente. Sin embargo, OkHttp eliminó el soporte para KitKat en el cambio de la rama 3.x a 4.x. Aqui estamos.

  • @carmebar también agregó una Shareopción a las listas de reproducción locales. Dado que no tienen una URL (ya que se almacenan únicamente en su dispositivo), esto se hizo compartiendo una lista de todas las URL de video en la lista de reproducción.

Mejorado

  • Algunas personas informaron que la aplicación mostraba títulos en inglés traducidos automáticamente para algunos videos de YouTube, en lugar del idioma original. @FireMasterK arregló esto. Ahora se muestra el título original.

  • La opción de actualización de alimentación rápida devolvía miniaturas con barras negras en la parte superior e inferior. @Stypox arregló esto, a costa de una resolución de miniatura ligeramente más baja.

  • @OxygenCobalt mejoró el cambio 1:1 para las miniaturas de notificación. Ahora recorta la imagen en un cuadrado en lugar de estirarla para llenarla, lo que hacía que se viera extraño en Android 11 y superior.

  • @Stypox agregó soporte para todas las relaciones de aspecto para enumerar miniaturas, de modo que si son diferentes a 16: 9, se escalan para ajustarse en lugar de recortarse. Como resultado, las miniaturas cuadradas en SoundCloud y Bandcamp se ven mejor. Además, las miniaturas de las listas de reproducción tenían la mitad de su área oculta detrás de una barra negra, que también se solucionó.

  • @krlvm mejoró las imágenes de marcador de posición para miniaturas y avatares, con la ayuda de @Stypox. Ahora se muestran de inmediato, en lugar de esperar un período de tiempo de espera arbitrario cuando hay un error de red o la conexión es deficiente. Además, las imágenes de marcador de posición de baja resolución se reemplazaron con gráficos vectoriales, que se ven mucho mejor en pantallas de alta resolución. Finalmente, se adaptaron los marcadores de posición para que se vieran mejor con el tema claro.

  • @litetex eliminó la etiqueta «beta» de todos los servicios porque, como se señaló correctamente, NewPipe es una aplicación de terceros no oficial. Esto significa que, técnicamente, todos los servicios que admitimos están permanentemente en versión beta, ya que podrían dejar de funcionar en cualquier momento debido a cambios en el servicio, que no están bajo nuestro control.

  • @Stypox asumió la abrumadora tarea de refactorizar el código de jugador masivo de NewPipe, denominado de diversas maneras como «un montón de basura caliente» y «un monstruo de espagueti de la perdición», con los sentimientos de los desarrolladores oscilando entre «Prefiero pegarme un tiro en el pie que lidiar con esto” y “AAAAAHHHHHH”, dividiéndolo en partes más pequeñas, más mantenibles y utilizables, lo que hará que el desarrollo futuro sea mucho más fácil. Condujo a una mejora (enumerada a continuación) y también a algunas correcciones de errores (incluido uno importante), que se mencionan en la siguiente sección:

    • El reproductor de fondo/audio ya no mantiene las vistas del reproductor principal y del reproductor emergente cargadas inútilmente en la RAM. Solo se guarda en la memoria la vista del reproductor utilizada actualmente.
  • @Isira-Seneviratne hizo que la clasificación de etiquetas no distinguiera entre mayúsculas y minúsculas, lo que hizo que las etiquetas de contenido fueran más fáciles de ver y usar.

Fijado

  • Con respecto a la versión de revisión 0.23.2: @Theta-Dev , un colaborador externo (!), arregló la extracción de las nsigfunciones complejas utilizadas por YouTube, ya que se cambió su formato.
    • ¿Recuerdas cuando dijimos anteriormente que YouTube hizo que el código de prevención de limitación sea más resistente a tales cambios? Resulta que no estaba haciendo su trabajo correctamente, así que @AudricV lo arregló.
    • @AudricV también actualizó las versiones de los clientes de YouTube que usa NewPipe y mejoró la extracción de la clave API del cliente del sitio web de escritorio en particular. También agregaron más parámetros a las solicitudes HTTP de algunos de estos clientes, lo que soluciona el problema del reemplazo de transmisiones de video y audio por un video silencioso que simplemente dice “El siguiente contenido no está disponible en esta aplicación. Mira este contenido en la última versión de YouTube”.
  • Para la versión de revisión 0.23.3: @Theta-Dev descubrió que una versión más nueva de una biblioteca que usamos llama a una clase de Java que no está disponible en Android, lo que provocó una carga infinita de videos. La biblioteca fue degradada.
    • @litetex arregló la aceleración en algunos videos al verificar si el código JavaScript que extrajimos de YouTube es un código válido y, de lo contrario, recurrir a nuestra expresión regular. A esa expresión regular también le faltaba un }.
  • @Theta-Dev luego descubrió que Android usa un analizador de expresiones regulares (o regex) diferente al de Java estándar, y usó el carácter mágico \para hacer que nuestro dispositivo anti-aceleración (patente definitivamente pendiente) funcione correctamente.

  • Después de todo este juego con el mismo problema en varias versiones, @Theta-Dev estaba harto y, en consecuencia, agregó un analizador de JavaScript completo al Extractor. Esto reemplaza la implementación personalizada presente anteriormente, que tendía a fallar cada vez que YouTube decidía cambiar el formato de su nsigfunción de descifrado de aceleración. Con suerte, esto se traduce en una necesidad menos frecuente de revisiones en el futuro.

  • @litetex también arregló la extracción de algunas listas de reproducción de YouTube para usuarios en la UE al permitir el seguimiento a través de un consentimiento. Nos encantaría ofrecer esta funcionalidad sin ceder a los deseos de YouTube, pero lamentablemente, es lo que es. Este cambio solo está disponible en el Extractor por ahora.

  • @AudricV arregló el molesto error intermitente «No se pudo obtener el conteo de me gusta», lo que provocó que apareciera una barra de error en un montón de videos al azar. Resultó ser un nuevo modelo de datos que YouTube estaba probando A/B, lo que cambió la forma en que se accedía al recuento de Me gusta.

  • Un nuevo modelo de datos (diferente) que se sometió a pruebas A/B también provocó que el quiosco de Tendencias a veces no mostrara ningún video (lo que también afectó a Piped y se solucionó, para aquellos de ustedes que lo usan). @AudricV también agregó soporte para eso. (Por cierto, el nuevo modelo nos permite separar mejor las secciones regulares «Tendencias», «Tendencias recientes» y «Cortos». Todavía extraemos solo la primera de estas, pero es útil tenerlas separadas en el código para futuras cambios.)

  • Ahora que tenemos un analizador JS adecuado como se mencionó anteriormente, no necesitamos la expresión regular de la función de descifrado de aceleración. El analizador nunca fallará, teóricamente hablando. Pero todavía lo mantenemos como una alternativa, por precaución. @AudricV corrigió la expresión regular para que coincida con las actualizaciones en la función de descifrado proporcionada por YouTube.

  • @Stypox notó que se estaba usando la imagen de marcador de posición incorrecta para los avatares del canal en algunos lugares, lo que ahora está solucionado.

  • El refactor del reproductor mencionado en la sección anterior resolvió un error de larga data al que se enfrentaban los usuarios de Android 12, donde el reproductor a veces solo llenaba una cuarta parte de la pantalla cuando estaba en pantalla completa, dejando el resto vacío.

  • También solucionó un problema en el que se informaba que NewPipe se mostraba sobre otras aplicaciones, incluso si solo se usaba el reproductor de fondo (que es solo una notificación).

  • La refactorización adicional solucionó el problema de la reproducción de un video más nuevo, pero la notificación del reproductor seguía mostrando la miniatura del anterior.

  • Además, la actualización de los metadatos de notificación se dejó en manos de ExoPlayer, en lugar de permitir que la aplicación emitiera actualizaciones de metadatos personalizadas, lo que resolvió el problema de la duración incorrecta o la posición actual que a veces se mostraba.

Localización

  • @opusforlife2 revisó NewPipe ReadMe para mejorar la claridad y reflejar el estado actual del proyecto.

  • @chr56 notó que había dos archivos de traducción para chino simplificado, lo que causaba problemas con el mantenimiento y algunas traducciones faltantes o inconsistentes. Se eliminó uno de los archivos, restableciendo el orden en el mundo y mejorando la compatibilidad con versiones anteriores de Android, para empezar. Requirió un poco de manipulación cuidadosa con Weblate para evitar romper cosas, pero @Stypox hizo el trabajo, sin problemas.

Despedida de un miembro del equipo que abandonó el proyecto

Nos entristece decir que @mhmdanas /Triallax deja el equipo, después de dedicar más de 2 años al proyecto en forma de contribuciones de código, mantenimiento de repositorios e interacción con la comunidad. La mayoría de las personas que visitan el repositorio NewPipe y el canal IRC están familiarizadas con él, y cualquiera que haya abierto un problema en el repositorio probablemente haya interactuado con él al menos una vez. En cierto modo, la presencia casi constante de @mhmdanas se ha convertido en un elemento básico de la experiencia del proyecto NewPipe, y será difícil para nosotros acostumbrarnos a no tenerlos cerca todo el tiempo. ¡Sin embargo, no temas! Esto no se convertirá en un caso de persona desaparecida. @mhmdanas se quedará en el canal de IRC, por lo que todos pueden acercarse a ellos y tocarlos en el hombro, metafóricamente hablando.

Dónde conseguir esta nueva versión

Puede descargar la versión más reciente de NewPipe a través de nuestro link.

Si usa la aplicación F-Droid , también le notifica sobre las actualizaciones de NewPipe. Tenga en cuenta que F-Droid puede tardar un tiempo en actualizar su repositorio. Si tiene problemas para instalar la actualización, es posible que deba desinstalar NewPipe y luego instalarlo de nuevo. (Asegúrese de hacer una copia de seguridad de los datos exportando su base de datos desde el Settings > Content menú).

Si ya instaló NewPipe desde el repositorio de F-Droid, para obtener esta versión de NewPipe puede hacer lo siguiente:

  • Espera a que actualicen.
  • Cambie al repositorio personalizado de NewPipe.

Nota: Si instaló NewPipe desde las versiones de GitHub, no tendrá que desinstalar NewPipe para cambiar a nuestro repositorio personalizado. Solo deja que actualice tu versión actual. ¡Asegúrese de hacer una copia de seguridad de sus datos como se menciona en la advertencia en la parte superior de la página de preguntas frecuentes!

Ahora que (con suerte) ha actualizado, háganos saber cuál es su experiencia con la última versión, especialmente los errores que necesitan corrección. Como de costumbre, puede comunicarse con nosotros a través de IRC (newpipe en Libera.Chat), abrir problemas en GitHub o, idealmente, usar nuestro informe de fallas incorporado para enviarnos informes de problemas legibles por máquina. Incluso puede enviar arreglos usted mismo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *