FreeTubeApp / FreeTube

An Open Source YouTube app for privacy
https://freetubeapp.io/
GNU Affero General Public License v3.0
13.66k stars 864 forks source link

[Feature Request]: Support Importing OPML from RSS Clients #5594

Closed deepspaceaxolotl closed 2 months ago

deepspaceaxolotl commented 3 months ago

Guidelines

Problem Description

As brought up in #260 and seemingly still the case, FreeTube doesn't support importing OPML files from at least some RSS readers.

Proposed Solution

Support for OPML files from RSS readers for importing channel subscriptions would be appreciated, particularly where there are a lot of channels and no way to export another format that FreeTube supports.

Alternatives Considered

The docs suggest asking for support for a format FreeTube supports to be implemented, but that is not always possible (my preferred RSS client, RSSOwlnix, is not actively under development for instance).

Issue Labels

improvement to existing feature

Additional Information

No response

absidue commented 3 months ago

Could you please provide some example files. If you feel uncomfortable sharing your own subscriptions, you could use some of the official YouTube's own channels instead e.g. https://youtube.com/@YouTube and https://youtube.com/@YouTubeMusic.

deepspaceaxolotl commented 3 months ago

Sure, I'll share a file with a few subscriptions. GitHub doesn't let me upload OPMLs so I'll share the contents directly.

<?xml version="1.0" encoding="UTF-8"?>
<opml xmlns:rssowl="http://www.rssowl.org" version="1.1">
  <head>
    <title>RSSOwlnix Subscriptions</title>
    <dateModified>Wed, 21 Aug 2024 15:54:19 UTC</dateModified>
  </head>
  <body>
    <outline text="My Feeds" rssowl:isSet="true" rssowl:id="7">
      <outline text="YouTube" rssowl:isSet="false" rssowl:id="25217">
        <outline text="The McElroy Family" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UC6k_GngLDtxbkUlZOq6_h5g" rssowl:id="25221" />
        <outline text="Kurzgesagt – In a Nutshell" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCsXVk37bltHxD1rDPwtNM8Q" rssowl:id="25227" />
        <outline text="Austin John Plays" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCIIPl-DSCC0prKxGGnJrdGQ" rssowl:id="49405" />
        <outline text="Jaiden Animations" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCGwu0nbY2wSkW8N-cghnLpA" rssowl:id="25258" />
        <outline text="kiwami japan" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCg3qsVzHeUt5_cPpcRtoaJQ" rssowl:id="148483" />
      </outline>
    </outline>
  </body>
</opml>
absidue commented 3 months ago

Interesting from just looking at the code and that file, it should already work.

Are you getting any specific error messages during the import?

deepspaceaxolotl commented 3 months ago

TypeError: Cannot read properties of undefined (reading 'name')

One or more subscriptions were unable to be imported.