Add setting to use RSS item title as torrent name #3

Open
opened 2026-02-21 14:48:02 -05:00 by deekerman · 6 comments
Owner

Originally created by @cdumez on GitHub (Aug 11, 2012).

Some users would find it useful if qBittorrent could use the title of the RSS item as torrent / file name so that it would look something like:

Lost.S06E05.Lighthouse.DD51.720p.WEB-DL.AVC-FUSiON.mkv -> Lost [6x05] Lighthouse.mkv

Originally created by @cdumez on GitHub (Aug 11, 2012). Some users would find it useful if qBittorrent could use the title of the RSS item as torrent / file name so that it would look something like: Lost.S06E05.Lighthouse.DD51.720p.WEB-DL.AVC-FUSiON.mkv -> Lost [6x05] Lighthouse.mkv
Author
Owner

@Gelmir commented on GitHub (Feb 26, 2013):

@cdumez, I guess this can be done, but should we consider other possible namings?

Since nobody uses a unified naming convention, filename can be very different.
E.g. release group can be perpended; season/episode letter can actually be a full word (season, episode); season/episode can be separated by special character; there might be no season at all (anime release groups don't tend to use 'em at all); name.episode can be separated with more than one symbol.

P.S. This also implements smart episode filter, requested somewhere on forums.

@Gelmir commented on GitHub (Feb 26, 2013): @cdumez, I guess this can be done, but should we consider other possible namings? Since nobody uses a unified naming convention, filename can be very different. E.g. release group can be perpended; season/episode letter can actually be a full word (season, episode); season/episode can be separated by special character; there might be no season at all (anime release groups don't tend to use 'em at all); name.episode can be separated with more than one symbol. P.S. This also implements smart episode filter, requested somewhere on forums.
Author
Owner

@Gelmir commented on GitHub (Jul 11, 2013):

I'll bump this, since it tagged for 3.1.

@Gelmir commented on GitHub (Jul 11, 2013): I'll bump this, since it tagged for 3.1.
Author
Owner

@sledgehammer999 commented on GitHub (Jul 11, 2013):

Idea for detecting season/episode number: Search for this kind of patern "S-number-E-number"

  1. Most of those releases separate each value either by using a .(dot) or _(underscore).
  2. The show name, season/episode number, episode name are usually at the beginning of the string
  3. Many groups'(anime fansubs usually) names are in [] at the beginning of the string.
@sledgehammer999 commented on GitHub (Jul 11, 2013): Idea for detecting season/episode number: Search for this kind of patern "S-number-E-number" 1. Most of those releases separate each value either by using a .(dot) or _(underscore). 2. The show name, season/episode number, episode name are usually at the beginning of the string 3. Many groups'(anime fansubs usually) names are in [] at the beginning of the string.
Author
Owner

@Gelmir commented on GitHub (Aug 6, 2013):

@sledgehammer999, how about revamping addTorrent addMagnet methods and removing TorrentTempData.

Currently we have:

QTorrentHandle addTorrent(QString path, bool fromScanDir = false, QString from_url = QString(), bool resumed = false);
QTorrentHandle addMagnetUri(QString magnet_uri, bool resumed=false, bool fromScanDir=false, const QString &filePath=QString());
void addMagnetSkipAddDlg(const QString& uri, const QString& save_path = QString(), const QString& label = QString());
void addMagnetInteractive(const QString& uri);
void downloadFromURLList(const QStringList& urls);
void downloadUrlAndSkipDialog(QString url, QString save_path=QString(), QString label=QString(), const QList<QNetworkCookie>& cookies = QList<QNetworkCookie>());

I suggest adding a qadd_torrent_params class to fill the data for torrent addition. This will remove unnecessary overloads and will allow to override default options easily (e.g. this issue and ignoring 'add torrents paused' in RSS may be handy too)

@Gelmir commented on GitHub (Aug 6, 2013): @sledgehammer999, how about revamping `addTorrent` `addMagnet` methods and removing `TorrentTempData`. Currently we have: ``` QTorrentHandle addTorrent(QString path, bool fromScanDir = false, QString from_url = QString(), bool resumed = false); QTorrentHandle addMagnetUri(QString magnet_uri, bool resumed=false, bool fromScanDir=false, const QString &filePath=QString()); void addMagnetSkipAddDlg(const QString& uri, const QString& save_path = QString(), const QString& label = QString()); void addMagnetInteractive(const QString& uri); void downloadFromURLList(const QStringList& urls); void downloadUrlAndSkipDialog(QString url, QString save_path=QString(), QString label=QString(), const QList<QNetworkCookie>& cookies = QList<QNetworkCookie>()); ``` I suggest adding a `qadd_torrent_params` class to fill the data for torrent addition. This will remove unnecessary overloads and will allow to override default options easily (e.g. this issue and ignoring 'add torrents paused' in RSS may be handy too)
Author
Owner

@sledgehammer999 commented on GitHub (Oct 24, 2013):

I am not interested in this feature being implemented ATM. However, if @Gelmir has code for extracting the name from the RSS title I'll be happy to merge it, even it doesn't cover all use cases.

@sledgehammer999, how about revamping addTorrent addMagnet methods and removing TorrentTempData.

Currently I was thinking the same thing. How to eradicate all this functions down to 1 or 2. This discussion however belongs elsewhere.

PS: I pushed code in master which uses add_torrent() for magnets too, so the 2 functions can probably be merged together now.

@sledgehammer999 commented on GitHub (Oct 24, 2013): I am not interested in this feature being implemented ATM. However, if @Gelmir has code for extracting the name from the RSS title I'll be happy to merge it, even it doesn't cover all use cases. > @sledgehammer999, how about revamping addTorrent addMagnet methods and removing TorrentTempData. Currently I was thinking the same thing. How to eradicate all this functions down to 1 or 2. This discussion however belongs elsewhere. PS: I pushed code in master which uses add_torrent() for magnets too, so the 2 functions can probably be merged together now.
Author
Owner

@xavier2k6 commented on GitHub (May 23, 2025):

ANNOUNCEMENT!

For anybody coming across this "Feature Request" & would like/love to see a potential implementation in the future!
Here are some options available to you:

  1. Please select/click the 👍 &/orreactions in the original/opening post of this ticket.

  2. Please feel free (If you have the "skillset") to create a "Pull Request" implementing what's being requested in this ticket.
    (new/existing contributors/developers are always welcome)


DO:

  • Provide constructive feedback.
  • Display how other projects implemented same/similar etc.

DO NOT:

  • Add a "Bump", "me too", "2nd/3rd" etc. or "criticizing" comment(s).
    (These will be disregarded/hidden as "spam/abuse/off-topic" etc. as they don't provide anything constructive.)
@xavier2k6 commented on GitHub (May 23, 2025): ## ANNOUNCEMENT! For anybody coming across this **_"Feature Request"_** & would like/love to see a potential implementation in the future! **Here are some options available to you:** 1. Please select/click the 👍 **&/or** ❤ `reactions` in the original/opening post of this ticket. 2. Please feel free _(If you have the "skillset")_ to create a **_"Pull Request"_** implementing what's being requested in this ticket. **_(new/existing contributors/developers are always welcome)_** ____ **DO:** * Provide constructive feedback. * Display how other projects implemented same/similar etc. **DO NOT:** * Add a "Bump", "me too", "2nd/3rd" etc. or "criticizing" comment(s). **(These will be disregarded/hidden as "spam/abuse/off-topic" etc. as they don't provide anything constructive.)**
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/qBittorrent#3
No description provided.