Files
invidious/locales
unrealtournament 1dc3335ce6 Add subscription JSON export for NewPipe (#5826)
The current option to export subscriptions for NewPipe (`Export subscriptions as OPML (for NewPipe & FreeTube)`) isn't accepted by NewPipe anymore. As far as I can tell, NewPipe only accepts importing from its own SQLite database, from Google Account CSV export and from its own JSON export format. This is mentioned in https://github.com/iv-org/invidious/issues/5438.

This PR adds support to export subscriptions in the NewPipe compatible format. I'm looking for input on a few points:
- I'm not a huge fan of hardcoding the NewPipe version in the export, but it is required by NewPipe to recognize it as a valid file. If someone has a better idea I'm all ears but I think it's the only way. In any case, NewPipe can import formats in a backwards compatible way in the future so it shouldn't be a huge deal.
- I haven't checked if the OPML export option actually works for FreeTube. If it doesn't, it should probably be removed altogether, for now I just removed the `(for NewPipe)` part.
- The translations would need to be updated, but I don't know how that is handled in this project so I need some help there.

The new format looks like this:
```
{
  "subscriptions": [
    {
      "service_id": 0,
      "url": "https://www.youtube.com/channel/UCHnyfMqiRRG1u-2MsSQLbXA",
      "name": "Veritasium"
    },
    {
      "service_id": 0,
      "url": "https://www.youtube.com/channel/UC6nSFpj9HTCZ5t-N3Rm3-HA",
      "name": "Vsauce"
    }
  ],
  "app_version": "0.29.0",
  "app_version_int": 1014
}
```


* add subscription json export for NewPipe

* remove old newpipe export format

* make newpipe export values constant

* remove duplicate export option, add i18n keys

* Convert to_newpipe to a serializable struct

* Use same naming format as NewPipe for the exported subscriptions

---------

Co-authored-by: Fijxu <fijxu@nadeko.net>
2026-10-31 17:34:46 -03:00
..
2023-06-29 23:52:41 +02:00
2026-10-25 22:19:48 -03:00
2023-08-07 21:29:48 +02:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2025-09-12 15:06:32 +00:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-08-02 22:30:05 +02:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-08-02 22:29:49 +02:00
2025-01-25 14:02:51 +01:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00
2026-10-25 22:19:48 -03:00