FreeTube icon indicating copy to clipboard operation
FreeTube copied to clipboard

[Feature Request]: Support Importing OPML from RSS Clients

Open deepspaceaxolotl opened this issue 1 year ago • 4 comments

Guidelines

  • [X] I have searched the issue tracker for open and closed issues that are similar to the feature request I want to file, without success.
  • [X] I have searched the documentation for information that matches the description of the feature request I want to file, without success.
  • [X] This issue contains only one feature request.

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

deepspaceaxolotl avatar Aug 21 '24 07:08 deepspaceaxolotl

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.

absidue avatar Aug 21 '24 15:08 absidue

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>

deepspaceaxolotl avatar Aug 21 '24 15:08 deepspaceaxolotl

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

Are you getting any specific error messages during the import?

absidue avatar Aug 21 '24 16:08 absidue

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

One or more subscriptions were unable to be imported.

deepspaceaxolotl avatar Aug 21 '24 19:08 deepspaceaxolotl