1
0
mirror of https://github.com/TeamNewPipe/NewPipe.git synced 2024-11-25 04:22:30 +01:00

Merge dev to refactor (#11427)

* add NP icon for Android Studio's NewUI

* Fix NPE in MediaSessionPlayerUi while destroying player

* Update NewPipeExtractor to v0.24.1

* Add changelogs for hotfix release v0.27.1 (998)

* Hotfix release v0.27.1 (998)

* Update README.pt_BR.md (#11275)

* Update Matrix room link, and prioritise it (#11350)

* Update Matrix room link, and prioritise it

* Update Matrix room link in CONTRIBUTING.md

* Prioritise Matrix in contribution doc too

* Update NewPipeExtractor to v0.24.2

* Hotfix release v0.27.2 (999)

* Add changelogs for hotfix release v0.27.2 (999)

* Don't warn about rhino class in proguard

Likely related to 01a7b20655 but I am not completely sure.
I tested the app and it works well, so I think that org.mozilla.javascript.JavaToJSONConverters is not used really.

This is the full list of errors:
Missing class java.beans.BeanDescriptor (referenced from: java.lang.Object org.mozilla.javascript.JavaToJSONConverters.lambda$static$4(java.lang.Object))
Missing class java.beans.BeanInfo (referenced from: java.lang.Object org.mozilla.javascript.JavaToJSONConverters.lambda$static$4(java.lang.Object))
Missing class java.beans.IntrospectionException (referenced from: java.lang.Object org.mozilla.javascript.JavaToJSONConverters.lambda$static$4(java.lang.Object))
Missing class java.beans.Introspector (referenced from: java.lang.Object org.mozilla.javascript.JavaToJSONConverters.lambda$static$4(java.lang.Object))
Missing class java.beans.PropertyDescriptor (referenced from: java.lang.Object org.mozilla.javascript.JavaToJSONConverters.lambda$static$4(java.lang.Object))

* Remove code committed accidentally

---------

Co-authored-by: Christian Schabesberger <chris.schabesberger@mailbox.org>
Co-authored-by: Tobi <TobiGr@users.noreply.github.com>
Co-authored-by: Stypox <stypox@pm.me>
Co-authored-by: #27 <68751594+tag27@users.noreply.github.com>
Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
This commit is contained in:
Isira Seneviratne 2024-08-11 08:11:50 +05:30 committed by GitHub
parent d336f4cef2
commit 9d04a73c85
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
61 changed files with 188 additions and 79 deletions

View File

@ -79,6 +79,6 @@ The [ktlint](https://github.com/pinterest/ktlint) plugin does the same job as ch
## Communication ## Communication
* The #newpipe channel on Libera Chat (`ircs://irc.libera.chat:6697/newpipe`) has the core team and other developers in it. [Click here for webchat](https://web.libera.chat/#newpipe)! * You can use a Matrix account to join the NewPipe channel at [#newpipe:matrix.newpipe-ev.de](https://matrix.to/#/#newpipe:matrix.newpipe-ev.de). Some convenient clients, available both for phone and desktop, are listed at that link.
* You can also use a Matrix account to join the NewPipe channel at [#newpipe:libera.chat](https://matrix.to/#/#newpipe:libera.chat). Some convenient clients, available both for phone and desktop, are listed at that link. * Alternatively, the #newpipe channel on Libera Chat (`ircs://irc.libera.chat:6697/newpipe`) can also be joined, as it is bridged to the Matrix room. [Click here for webchat](https://web.libera.chat/#newpipe)!
* You can post your suggestions, changes, ideas etc. on either GitHub or IRC. * You can post your suggestions, changes, ideas etc. on either GitHub or Matrix (including via IRC).

View File

@ -3,9 +3,9 @@ contact_links:
- name: ❓ Question - name: ❓ Question
url: https://github.com/TeamNewPipe/NewPipe/discussions/new?category=questions url: https://github.com/TeamNewPipe/NewPipe/discussions/new?category=questions
about: Ask about anything NewPipe-related about: Ask about anything NewPipe-related
- name: 💬 Matrix
url: https://matrix.to/#/#newpipe:matrix.newpipe-ev.de
about: Chat with us via Matrix for quick Q/A
- name: 💬 IRC - name: 💬 IRC
url: https://web.libera.chat/#newpipe url: https://web.libera.chat/#newpipe
about: Chat with us via IRC for quick Q/A about: Chat with us via IRC for quick Q/A
- name: 💬 Matrix
url: https://matrix.to/#/#newpipe:libera.chat
about: Chat with us via Matrix for quick Q/A

21
.idea/icon.svg Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
<style type="text/css">
.st0{fill:#CD201F;}
.st1{fill:#FFFFFF;}
</style>
<g id="Alapkör">
<circle id="XMLID_23_" class="st0" cx="50" cy="50" r="50"/>
</g>
<g id="Elemek">
<path id="XMLID_19_" class="st1" d="M47,28.2c-9-5.3-15.3-9-15.3-9v61.7c0,0,30.4-18,52.3-30.9C72.1,43,57.7,34.5,47,28.2z"/>
</g>
<g id="Fedő">
<path id="XMLID_5_" class="st0" d="M48.4,40.1c-4.1-2.4-7-4.1-7-4.1V64c0,0,13.9-8.2,23.8-14C59.8,46.8,53.3,42.9,48.4,40.1z"/>
<rect id="XMLID_4_" x="41.4" y="55.6" class="st0" width="6.2" height="21"/>
</g>
<g id="Vonalak">
</g>
</svg>

After

Width:  |  Height:  |  Size: 850 B

View File

@ -20,8 +20,8 @@ android {
resValue "string", "app_name", "NewPipe" resValue "string", "app_name", "NewPipe"
minSdk 21 minSdk 21
targetSdk 33 targetSdk 33
versionCode 997 versionCode 999
versionName "0.27.0" versionName "0.27.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@ -203,7 +203,7 @@ dependencies {
// name and the commit hash with the commit hash of the (pushed) commit you want to test // name and the commit hash with the commit hash of the (pushed) commit you want to test
// This works thanks to JitPack: https://jitpack.io/ // This works thanks to JitPack: https://jitpack.io/
implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751' implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751'
implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.24.1' implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.24.2'
implementation 'com.github.TeamNewPipe:NoNonsense-FilePicker:5.0.0' implementation 'com.github.TeamNewPipe:NoNonsense-FilePicker:5.0.0'
/** Checkstyle **/ /** Checkstyle **/

View File

@ -7,6 +7,7 @@
-keep class org.schabi.newpipe.extractor.timeago.patterns.** { *; } -keep class org.schabi.newpipe.extractor.timeago.patterns.** { *; }
-keep class org.mozilla.javascript.** { *; } -keep class org.mozilla.javascript.** { *; }
-keep class org.mozilla.classfile.ClassFileWriter -keep class org.mozilla.classfile.ClassFileWriter
-dontwarn org.mozilla.javascript.JavaToJSONConverters
-dontwarn org.mozilla.javascript.tools.** -dontwarn org.mozilla.javascript.tools.**
## Rules for ExoPlayer ## Rules for ExoPlayer

View File

@ -27,8 +27,6 @@ import org.schabi.newpipe.databinding.ActivityRecaptchaBinding;
import org.schabi.newpipe.extractor.utils.Utils; import org.schabi.newpipe.extractor.utils.Utils;
import org.schabi.newpipe.util.ThemeHelper; import org.schabi.newpipe.util.ThemeHelper;
import java.io.UnsupportedEncodingException;
/* /*
* Created by beneth <bmauduit@beneth.fr> on 06.12.16. * Created by beneth <bmauduit@beneth.fr> on 06.12.16.
* *
@ -190,11 +188,10 @@ public class ReCaptchaActivity extends AppCompatActivity {
String abuseCookie = url.substring(abuseStart + 13, abuseEnd); String abuseCookie = url.substring(abuseStart + 13, abuseEnd);
abuseCookie = Utils.decodeUrlUtf8(abuseCookie); abuseCookie = Utils.decodeUrlUtf8(abuseCookie);
handleCookies(abuseCookie); handleCookies(abuseCookie);
} catch (UnsupportedEncodingException | StringIndexOutOfBoundsException e) { } catch (IllegalArgumentException | StringIndexOutOfBoundsException e) {
if (MainActivity.DEBUG) { if (MainActivity.DEBUG) {
e.printStackTrace(); Log.e(TAG, "handleCookiesFromUrl: invalid google abuse starting at "
Log.d(TAG, "handleCookiesFromUrl: invalid google abuse starting at " + abuseStart + " and ending at " + abuseEnd + " for url " + url, e);
+ abuseStart + " and ending at " + abuseEnd + " for url " + url);
} }
} }
} }

View File

@ -38,7 +38,9 @@ public class MediaSessionPlayerUi extends PlayerUi
implements SharedPreferences.OnSharedPreferenceChangeListener { implements SharedPreferences.OnSharedPreferenceChangeListener {
private static final String TAG = "MediaSessUi"; private static final String TAG = "MediaSessUi";
@Nullable
private MediaSessionCompat mediaSession; private MediaSessionCompat mediaSession;
@Nullable
private MediaSessionConnector sessionConnector; private MediaSessionConnector sessionConnector;
private final String ignoreHardwareMediaButtonsKey; private final String ignoreHardwareMediaButtonsKey;
@ -198,6 +200,11 @@ public class MediaSessionPlayerUi extends PlayerUi
return; return;
} }
if (sessionConnector == null) {
// sessionConnector will be null after destroyPlayer is called
return;
}
// only use the fourth and fifth actions (the settings page also shows only the last 2 on // only use the fourth and fifth actions (the settings page also shows only the last 2 on
// Android 13+) // Android 13+)
final List<NotificationActionData> newNotificationActions = IntStream.of(3, 4) final List<NotificationActionData> newNotificationActions = IntStream.of(3, 4)

View File

@ -30,7 +30,6 @@ import org.schabi.newpipe.util.FilePickerActivityHelper;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI; import java.net.URI;
public class DownloadSettingsFragment extends BasePreferenceFragment { public class DownloadSettingsFragment extends BasePreferenceFragment {
@ -125,7 +124,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
try { try {
rawUri = decodeUrlUtf8(rawUri); rawUri = decodeUrlUtf8(rawUri);
} catch (final UnsupportedEncodingException e) { } catch (final IllegalArgumentException e) {
// nothing to do // nothing to do
} }

View File

@ -1,3 +1,6 @@
<h3 align="center">Nós estamos planejando <i>reescrever</i> grandes pedaços do código base, para gerar <a href="https://github.com/TeamNewPipe/NewPipe/discussions/10118"> um novo, moderno e estável NewPipe</a>!</h3>
<h4 align="center">Por favor, <b>não</b> abra solicitações de pull para <i>novos recursos</i> por enquanto, apenas correções de bugs serão aceitas.</h4>
<p align="center"><a href="https://newpipe.net"><img src="../assets/new_pipe_icon_5.png" width="150"></a></p> <p align="center"><a href="https://newpipe.net"><img src="../assets/new_pipe_icon_5.png" width="150"></a></p>
<h2 align="center"><b>NewPipe</b></h2> <h2 align="center"><b>NewPipe</b></h2>
@ -13,16 +16,16 @@
<a href="https://web.libera.chat/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a> <a href="https://web.libera.chat/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
</p> </p>
<hr> <hr>
<p align="center"><a href="#screenshots">Screenshots</a> &bull; <a href="#description">Descrição</a> &bull; <a href="#features">Características</a> &bull; <a href="#updates">Atualizações</a> &bull; <a href="#contribution">Contribuição</a> &bull; <a href="#donate">Doar</a> &bull; <a href="#license">Licença</a></p> <p align="center"><a href="#screenshots">Screenshots</a> &bull; <a href="#serviços-suportados">Serviços Suportados</a> &bull; <a href="#descrição">Descrição</a> &bull; <a href="#recursos">Recursos</a> &bull; <a href="#instalação-e-atualizações">Instalação e atualizações</a> &bull; <a href="#contribuições">Contribuições</a> &bull; <a href="#doar">Doar</a> &bull; <a href="#licença">Licença</a></p>
<p align="center"><a href="https://newpipe.net">Site</a> &bull; <a href="https://newpipe.net/blog/">Blog</a> &bull; <a href="https://newpipe.net/FAQ/">FAQ</a> &bull; <a href="https://newpipe.net/press/">Press</a></p> <p align="center"><a href="https://newpipe.net">Site</a> &bull; <a href="https://newpipe.net/blog/">Blog</a> &bull; <a href="https://newpipe.net/FAQ/">FAQ</a> &bull; <a href="https://newpipe.net/press/">Press</a></p>
<hr> <hr>
*Read this document in other languages: [Deutsch](README.de.md), [English](../README.md), [Español](README.es.md), [Français](README.fr.md), [हिन्दी](README.hi.md), [Italiano](README.it.md), [한국어](README.ko.md), [Português Brasil](README.pt_BR.md), [Polski](README.pl.md), [ਪੰਜਾਬੀ ](README.pa.md), [日本語](README.ja.md), [Română](README.ro.md), [Soomaali](README.so.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md), [অসমীয়া](README.asm.md), [うちなーぐち](README.ryu.md), [Српски](README.sr.md)* *Leia esse documento em outras línguas: [Deutsch](README.de.md), [English](../README.md), [Español](README.es.md), [Français](README.fr.md), [हिन्दी](README.hi.md), [Italiano](README.it.md), [한국어](README.ko.md), [Português Brasil](README.pt_BR.md), [Polski](README.pl.md), [ਪੰਜਾਬੀ ](README.pa.md), [日本語](README.ja.md), [Română](README.ro.md), [Soomaali](README.so.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md), [অসমীয়া](README.asm.md), [うちなーぐち](README.ryu.md), [Српски](README.sr.md)*
> [!warning] > [!warning]
> <b>ESTA É UMA VERSÃO BETA, PORTANTO, VOCÊ PODE ENCONTRAR BUGS. ENCONTROU ALGUM, ABRA UM ISSUE ATRAVÉS DO NOSSO REPOSITÓRIO GITHUB.</b> > <b>ESTA É UMA VERSÃO BETA, PORTANTO, VOCÊ PODE ENCONTRAR BUGS. ENCONTROU ALGUM, ABRA UM ISSUE ATRAVÉS DO NOSSO REPOSITÓRIO GITHUB PREENCHENDO O MODELO.</b>
> >
> <b>COLOCAR NEWPIPE OU QUALQUER FORK DELE NA GOOGLE PLAY STORE VIOLA SEUS TERMOS E CONDIÇÕES.</b> > <b>COLOCAR NEWPIPE, OU QUALQUER FORK DELE, NA GOOGLE PLAY STORE VIOLA SEUS TERMOS E CONDIÇÕES.</b>
## Screenshots ## Screenshots
@ -39,83 +42,84 @@
[<img src="../fastlane/metadata/android/en-US/images/tenInchScreenshots/09.png" width=405>](../fastlane/metadata/android/en-US/images/tenInchScreenshots/09.png) [<img src="../fastlane/metadata/android/en-US/images/tenInchScreenshots/09.png" width=405>](../fastlane/metadata/android/en-US/images/tenInchScreenshots/09.png)
[<img src="../fastlane/metadata/android/en-US/images/tenInchScreenshots/10.png" width=405>](../fastlane/metadata/android/en-US/images/tenInchScreenshots/10.png) [<img src="../fastlane/metadata/android/en-US/images/tenInchScreenshots/10.png" width=405>](../fastlane/metadata/android/en-US/images/tenInchScreenshots/10.png)
## Descrição
O NewPipe não usa nenhuma biblioteca de framework do Google, nem a API do YouTube. Os sites são apenas analisados para obter informações necessárias, para que este aplicativo possa ser usado em dispositivos sem os serviços do Google instalados. Além disso, você não precisa de uma conta no YouTube para usar o NewPipe, que é um software livre com copyleft.
### Características
* Procurar vídeos
* Exibir informações gerais sobre vídeos
* Assista aos vídeos do YouTube
* Ouça vídeos do YouTube
* Modo popup (player flutuante)
* Selecione o player para assistir streaming
* Baixar vídeos
* Baixar somente áudio
* Abrir vídeo no Kodi
* Mostrar vídeos próximos/relacionados
* Pesquise no YouTube em um idioma específico
* Assistir/Bloquear material restrito
* Exibir informações gerais sobre canais
* Pesquisar canais
* Assista a vídeos de um canal
* Suporte Orbot/Tor (ainda não diretamente)
* Suporte 1080p/2K/4K
* Ver histórico
* Inscreva-se nos canais
* Procurar histórico
* Porcurar/Assistir playlists
* Assistir playlists em fila
* Vídeos em fila
* Playlists Local
* Legenda
* Suporte a live
* Mostrar comentários
### Serviços Suportados ### Serviços Suportados
O NewPipe suporta vários serviços. Nosso [documentação](https://teamnewpipe.github.io/documentation/) fornecer mais informações sobre como um novo serviço pode ser adicionado ao aplicativo e ao extrator. Por favor, entre em contato conosco se você pretende adicionar um novo. Atualmente, os serviços suportados são: Atualmente, os serviços suportados são:
* YouTube * YouTube ([site](https://www.youtube.com/)) e YouTube Music ([site](https://music.youtube.com/)) ([wiki](https://en.wikipedia.org/wiki/YouTube))
* SoundCloud \[beta\] * PeerTube ([site](https://joinpeertube.org/)) e todas suas instâncias (abra o site para saber o que isso significa!) ([wiki](https://en.wikipedia.org/wiki/PeerTube))
* media.ccc.de \[beta\] * Bandcamp ([site](https://bandcamp.com/)) ([wiki](https://en.wikipedia.org/wiki/Bandcamp))
* PeerTube instances \[beta\] * SoundCloud ([site](https://soundcloud.com/)) ([wiki](https://en.wikipedia.org/wiki/SoundCloud))
* Bandcamp \[beta\] * media.ccc.de ([site](https://media.ccc.de/)) ([wiki](https://en.wikipedia.org/wiki/Chaos_Computer_Club))
## Atualizações Como você pode ver, o NewPipe suporta múltiplos serviços de vídeo e áudio. Embora tenha começado com o YouTube, outras pessoas adicionaram mais serviços ao longo dos anos, tornando o NewPipe cada vez mais versátil!
Quando uma alteração no código NewPipe (devido à adição de recursos ou fixação de bugs), eventualmente ocorrerá uma versão. Estes estão no formato x.xx.x . A fim de obter esta nova versão, você pode:
1. Construa um APK de depuração você mesmo. Esta é a maneira mais rápida de obter novos recursos em seu dispositivo, mas é muito mais complicado, por isso recomendamos usar um dos outros métodos.
2. Adicione nosso repo personalizado ao F-Droid e instale-o a partir daí assim que publicarmos um lançamento. As instruções estão aqui.: https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo/
3. Baixe o APK do [GitHub Releases](https://github.com/TeamNewPipe/NewPipe/releases) e instalá-lo assim que publicarmos um lançamento.
4. Atualização via F-droid. Este é o método mais lento para obter atualizações, pois o F-Droid deve reconhecer alterações, construir o próprio APK, assiná-lo e, em seguida, enviar a atualização para os usuários.
Recomendamos o método 2 para a maioria dos usuários. Os APKs instalados usando o método 2 ou 3 são compatíveis entre si, mas não com aqueles instalados usando o método 4. Isso se deve à mesma chave de assinatura (nossa) sendo usada para 2 e 3, mas uma chave de assinatura diferente (F-Droid's) está sendo usada para 4. Construir um APK depuração usando o método 1 exclui totalmente uma chave. Assinar chaves ajudam a garantir que um usuário não seja enganado para instalar uma atualização maliciosa em um aplicativo. Parcialmente devido as circustâncias e a sua popularidade, o YouTube tem o melhor suporte em relação a esses serviços. Se você usa ou é familarizado com qualquer um desses serviços, por favor ajude-nos a melhorar o suporte para eles! Estamos procurando mantenedores para o SoundCloud e o PeerTube.
Se você pretende adicionar um novo serviço, por favor entre em contato conosco primeiro! Nossa [documentação](https://teamnewpipe.github.io/documentation/) traz mais informações em como um novo serviço pode ser adicionado ao aplicativo e no [NewPipe Extractor](https://github.com/TeamNewPipe/NewPipeExtractor).
## Descrição
NewPipe funciona buscando os dados necessários da API oficial (ex. PeerTube) ou do serviço que você está usando. Se a API oficial é restrita (ex. YouTube) para nossos propósitos, ou é proprietária, o aplicativo analisa o site ou usa uma API interna. Isso significa que não é preciso ter uma conta de qualquer serviço para usar o NewPipe.
Também, desde que somos um software livre e de código aberto, nem o aplicativo e nem o Extractor usa qualquer biblioteca ou framework proprietário, como o Google Play Services. Isso significa que você pode usar o NewPipe em dispositivos ou ROMs customizadas em que não tem os aplicativos do Google instalados.
### Recursos
* Assistir vídeos em resoluções de até 4K
* Escutar o áudio em segundo plano, carregando apenas o fluxo de áudio para salvar dados
* Modo popup (player flutuante, aka Picture-in-Picture)
* Assista a transmissões ao vivo
* Mostrar/esconder legendas/closed captions
* Buscar vídeos e áudios (no YouTube, você pode especificar o conteúdo da linguagem também)
* Enfileirar vídeos (e opcionalmente salvar eles como playlists locais)
* Mostrar/esconder informações gerais sobre os vídeos (como descrições e tags)
* Mostrar/esconder vídeos próximos/relacionados
* Mostrar/esconder comentários
* Buscar vídeos, áudios, canais, playlists e álbuns
* Navegar vídeos e áudios dentro de um canal
* Inscrever-se a canais (sim, mesmo se não estiver logado a qualquer conta!)
* Receba notificações sobre novos vídeos de canais em que você está inscrito
* Crie e edite grupos de canais (para facilitar a navegação e o gerenciamento)
* Navege feeds de vídeo gerados a partir dos seus grupos de canais
* Veja e pesquise seu histórico de vídeos
* Pesquise e assista playlists (Eles são playlists remotas, o que significa que eles serão obtidos do serviço que você está navegando)
* Crie e edite playlists locais (Eles são criados e salvos no aplicativo, e não são relacionados com nenhum serviço)
* Baixe vídeos/áudios/legendas (closed captions)
* Abra no Kodi
* Assista/Bloqueie material restrito
## Instalação e atualizações
Você pode instalar NewPipe com um dos seguintes métodos:
1. Adicione nosso repo personalizado ao F-Droid e instale-o a partir daí. As instruções estão aqui: https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo/
2. Baixe o APK aqui no [GitHub Releases](https://github.com/TeamNewPipe/NewPipe/releases) e instalá-lo assim que publicarmos um lançamento.
3. Atualização via F-droid. Este é o método mais lento para obter atualizações, pois o F-Droid deve reconhecer alterações, construir o próprio APK, assiná-lo e, em seguida, enviar a atualização para os usuários.
4. Construa um APK de depuração você mesmo. Esta é a maneira mais rápida de obter novos recursos em seu dispositivo, mas é muito mais complicado, por isso recomendamos usar um dos outros métodos.
5. Se você estiver interessado em um recurso específico ou uma correção de bug fornecido em uma solicitação de Pull nesse repositório, pode instalar o APK a partir de lá. Leia a descrição da solicitação para instruções. A grande vantagem dos APKs específicos de S.P é que eles são instalados lado a lado com o aplicativo oficial, então você não precisa se preocupar em perder seus dados ou estragar alguma coisa.
Recomendamos o método 1 para a maioria dos usuários. Os APKs instalados usando o método 1 ou 2 são compatíveis entre si (o que significa que se você instalou o NewPipe usando o método 1 ou 2, você também pode atualizar o NewPipe usando o outro), mas não com aqueles instalados usando o método 3. Isso se deve à mesma chave de assinatura (nossa) sendo usada para 1 e 2, mas uma chave de assinatura diferente (F-Droid's) está sendo usada para 3. Construir um APK depuração usando o método 4 exclui totalmente uma chave. Assinar chaves ajudam a garantir que um usuário não seja enganado para instalar uma atualização maliciosa em um aplicativo. Ao usar o método 5, cada APK é assinado com uma chave aleatória diferente fornecida pelo GitHub Actions, portanto você não pode nem mesmo atualizá-lo. Você terá que fazer backup e restaurar os dados do aplicativo sempre que desejar usar um novo APK.
Enquanto isso, se você quiser trocar de fontes por algum motivo (por exemplo, a funcionalidade principal do NewPipe foi quebrada e o F-Droid ainda não tem a atualização), recomendamos seguir este procedimento: Enquanto isso, se você quiser trocar de fontes por algum motivo (por exemplo, a funcionalidade principal do NewPipe foi quebrada e o F-Droid ainda não tem a atualização), recomendamos seguir este procedimento:
1. Faça backup de seus dados através de Configurações > Conteúdo > Exportar Base de Dados para que você mantenha seu histórico, inscrições e playlists 1. Faça backup de seus dados através de Configurações > Backup e Restauração > Exportar Base de Dados para que você mantenha seu histórico, inscrições e playlists
2. Desinstale o NewPipe 2. Desinstale o NewPipe
3. Baixe o APK da nova fonte e instale-o 3. Baixe o APK da nova fonte e instale-o
4. Importe os dados da etapa 1 via Configurações > Conteúdo > Inportar Banco de Dados 4. Importe os dados da etapa 1 via Configurações > Backup e Restauração > Importar Base de Dados
## Contribuição ## Contribuições
Se você tem ideias, traduções, alterações de design, limpeza de códigos ou mudanças reais de código, a ajuda é sempre bem-vinda. Se você tem ideias, traduções, alterações de design, limpeza de códigos ou mudanças reais de código, a ajuda é sempre bem-vinda. O aplicativo fica cada vez melhor a cada contribuição, não importa quão grande ou pequena! Se você quiser se envolver, verifique nossas [notas de contribuição](.github/CONTRIBUTING.md).
Quanto mais for feito, melhor fica!
Se você quiser se envolver, verifique nossa [notas de contribuição](../.github/CONTRIBUTING.md).
<a href="https://hosted.weblate.org/engage/newpipe/"> <a href="https://hosted.weblate.org/engage/newpipe/">
<img src="https://hosted.weblate.org/widgets/newpipe/-/287x66-grey.png" alt="Translation status" /> <img src="https://hosted.weblate.org/widgets/newpipe/-/287x66-grey.png" alt="Estado da tradução" />
</a> </a>
## Doar ## Doar
Se você gosta de NewPipe, ficaríamos felizes com uma doação. Você pode enviar bitcoin ou doar via Bountysource ou Liberapay. Para obter mais informações sobre como doar para a NewPipe, visite nosso [site](https://newpipe.net/donate). Se você gosta do NewPipe, pode enivar uma doação. Nós preferimos Liberapay, pois é de código aberto e sem fins lucrativos. Para mais informações sobre como doar para o NewPipe, visite nosso [site](https://newpipe.net/donate).
<table> <table>
<tr> <tr>
<td><a href="https://liberapay.com/TeamNewPipe/"><img src="https://upload.wikimedia.org/wikipedia/commons/2/27/Liberapay_logo_v2_white-on-yellow.svg" alt="Liberapay" width="80px" ></a></td> <td><a href="https://liberapay.com/TeamNewPipe/"><img src="https://upload.wikimedia.org/wikipedia/commons/2/27/Liberapay_logo_v2_white-on-yellow.svg" alt="Liberapay" width="80px" ></a></td>
<td><a href="https://liberapay.com/TeamNewPipe/"><img src="../assets/liberapay_qr_code.png" alt="Visit NewPipe at liberapay.com" width="100px"></a></td> <td><a href="https://liberapay.com/TeamNewPipe/"><img src="../assets/liberapay_qr_code.png" alt="Visite NewPipe em liberapay.com" width="100px"></a></td>
<td><a href="https://liberapay.com/TeamNewPipe/donate"><img src="../assets/liberapay_donate_button.svg" alt="Donate via Liberapay" height="35px"></a></td> <td><a href="https://liberapay.com/TeamNewPipe/donate"><img src="../assets/liberapay_donate_button.svg" alt="Doar via Liberapay" height="35px"></a></td>
</tr> </tr>
</table> </table>

View File

@ -0,0 +1 @@
تم إصلاح YouTube الذي لا يقوم بتشغيل أي دفق

View File

@ -0,0 +1 @@
تم إصلاح YouTube الذي لا يقوم بتشغيل أي دفق

View File

@ -0,0 +1 @@
YouTube-un heç bir yayım oynatmaması düzəldildi

View File

@ -0,0 +1 @@
YouTube-un heç bir yayım oynatmaması düzəldildi

View File

@ -0,0 +1 @@
Opraveno nepřehrávání jakéhokoli streamu ve službě YouTube

View File

@ -0,0 +1 @@
Opraveno nepřehrávání jakéhokoli streamu ve službě YouTube

View File

@ -0,0 +1 @@
Behoben, dass YouTube keinen Stream abspielte

View File

@ -0,0 +1 @@
Behoben, dass YouTube keinen Stream abspielte

View File

@ -0,0 +1,4 @@
Fixed YouTube not playing any stream because of HTTP 403 errors.
Occasional HTTP 403 errors in the middle of a YouTube video are not fixed yet.
That issue will be addressed in another hotfix release as soon as possible.

View File

@ -0,0 +1,12 @@
This hotfix release fixes HTTP 403 errors in the middle of YouTube videos.
New
• [SoundCloud] Add support for on.soundcloud.com URLs
Improved
• [Bandcamp] Show additional info in radio kiosk
Fixed
• [YouTube] Fix occasional HTTP 403 errors at the beginning or in the middle of videos
• [YouTube] Extract avatar and banner from more channel header types
• [Bandcamp] Fix various bugs and always use HTTPS

View File

@ -0,0 +1 @@
Arreglo en YouTube no reproduciendo flujos

View File

@ -0,0 +1 @@
Arreglo en YouTube no reproduciendo flujos

View File

@ -0,0 +1 @@
مشکل عدم نمایش پخش‌زنده برطرف شد

View File

@ -0,0 +1 @@
مشکل عدم نمایش پخش‌زنده برطرف شد

View File

@ -0,0 +1 @@
Correction de YouTube qui ne lisait aucun média

View File

@ -0,0 +1 @@
Correction de YouTube qui ne lisait aucun média

View File

@ -0,0 +1 @@
תוקנה התקלה ש־YouTube לא מנגן אף תזרים

View File

@ -0,0 +1 @@
תוקנה התקלה ש־YouTube לא מנגן אף תזרים

View File

@ -0,0 +1 @@
फिक्स्ड YouTube कोई स्ट्रीम नहीं चला रहा है

View File

@ -0,0 +1 @@
फिक्स्ड YouTube कोई स्ट्रीम नहीं चला रहा है

View File

@ -0,0 +1 @@
Memperbaiki YouTube yang tidak memutar streaming apa pun

View File

@ -0,0 +1 @@
Memperbaiki YouTube yang tidak memutar streaming apa pun

View File

@ -0,0 +1,4 @@
Corretto problema di riproduzione di YouTube causato da errori HTTP 403.
Gli errori HTTP 403 saltuari nel mezzo di un video di YouTube non sono ancora stati sistemati.
Questo problema sarà affrontato in un altra release hotfix non appena possibile.

View File

@ -0,0 +1,12 @@
Questo aggiornamento hotfix risolve gli errori HTTP 403 nel mezzo dei video di YouTube.
Novità
• [SoundCloud] Aggiunto il supporto per gli URL on.soundcloud.com
Migliorie
• [Bandcamp] Mostra informazioni aggiuntive nel chiosco della radio
Correzioni
• [YouTube] Corretti errori HTTP 403 occasionali all'inizio o nel mezzo dei video
• [YouTube] Estrazione avatar e banner da più tipi di canali
• [Bandcamp] Risolti vari bug e forzato l'uso di HTTPS

View File

@ -0,0 +1 @@
გაასწორა YouTube არ უკრავს არცერთ ნაკადს

View File

@ -0,0 +1 @@
გაასწორა YouTube არ უკრავს არცერთ ნაკადს

View File

@ -0,0 +1 @@
YouTube speelt geen stream af opgelost

View File

@ -0,0 +1 @@
YouTube speelt geen stream af opgelost

View File

@ -0,0 +1 @@
ਸਥਿਰ YouTube ਕੋਈ ਸਟ੍ਰੀਮ ਨਹੀਂ ਚਲਾ ਰਿਹਾ

View File

@ -0,0 +1 @@
ਸਥਿਰ YouTube ਕੋਈ ਸਟ੍ਰੀਮ ਨਹੀਂ ਚਲਾ ਰਿਹਾ

View File

@ -0,0 +1 @@
Corrigido YouTube não reproduzir qualquer transmissão

View File

@ -0,0 +1 @@
Corrigido YouTube não reproduzir qualquer transmissão

View File

@ -0,0 +1 @@
Corrigido YouTube não reproduzir nenhuma transmissão

View File

@ -0,0 +1 @@
Corrigido YouTube não reproduzir nenhuma transmissão

View File

@ -0,0 +1 @@
Corrigido YouTube não reproduzir nenhuma transmissão

View File

@ -0,0 +1 @@
Corrigido YouTube não reproduzir nenhuma transmissão

View File

@ -0,0 +1 @@
Исправлено: YouTube не воспроизводил никакие потоки

View File

@ -0,0 +1 @@
Исправлено: YouTube не воспроизводил никакие потоки

View File

@ -0,0 +1 @@
Åtgärdat att YouTube inte spelar någon stream

View File

@ -0,0 +1 @@
Åtgärdat att YouTube inte spelar någon stream

View File

@ -0,0 +1 @@
YouTube'un herhangi bir akışı oynatmaması düzeltildi

View File

@ -0,0 +1 @@
YouTube'un herhangi bir akışı oynatmaması düzeltildi

View File

@ -0,0 +1 @@
Виправлено проблему невідтворюваності трансляцій

View File

@ -0,0 +1 @@
Виправлено проблему невідтворюваності трансляцій

View File

@ -0,0 +1 @@
Đã sửa lỗi YouTube không phát bất kỳ luồng nào

View File

@ -0,0 +1 @@
Đã sửa lỗi YouTube không phát bất kỳ luồng nào

View File

@ -0,0 +1 @@
修复YouTube无法播放任何视频

View File

@ -0,0 +1 @@
修复YouTube无法播放任何视频

View File

@ -0,0 +1 @@
修正 YouTube 無法播放任何串流

View File

@ -0,0 +1 @@
修正 YouTube 無法播放任何串流

View File

@ -0,0 +1 @@
修正咗 YouTube 乜嘢實況串流都播唔到嘅問題

View File

@ -0,0 +1 @@
修正咗 YouTube 乜嘢實況串流都播唔到嘅問題