|
||
---|---|---|
conf | ||
docs | ||
scripts | ||
templates | ||
CHANGELOG | ||
LICENSE | ||
README.md | ||
install | ||
rsstube | ||
rsstube.1 |
README.md
rsstube
NOTE: This project has been archived. See https://negativezero.link/code/0x80/rsstube for the Python rewrite.
rsstube
accepts a link (e.g., a YouTube channel) and attempts to get an RSS feed for that link.
NOTE: If you downloaded rsstube
v2.5.0 and installed it, please manually remove and re-install the program. I created a bug in that version that prevents the updater from working correctly. If you downloaded it with git
, you can just cd
into the directory and git pull
to fix the issue.
Sorry about that.
Dependencies
Core utils like curl
and grep
are required.
Note: This script was written and tested with Bash. I tried to make it portable, but it may not work with all shells. Please feel free to let me know if it doesn't work with your shell.
Installing
1. Download the source.
Clone the git repo.
Extract the archive where you would like the files to be in (e.g., /usr/local/share/applications/rsstube/
or ~/.rsstube/
).
If the files are put into ~/.rsstube/
then rsstube
will be able to update itself without root permission, but it will also be modifiable without root access, which may not be desired.
Using the Install Script
2. Run the install
script as root:
sudo ./install
Manually
2. Create a symlink for the rsstube
file in /usr/local/bin/
:
sudo ln -s [path]/rsstube /usr/local/bin/rsstube
3. To add the manual for rsstube
(optional, but recommended), symlink rsstube.1
in /usr/local/share/man/man1/
:
sudo ln -s [path]/rsstube /usr/local/share/man/man1/rsstube
4. To update the manual database, run mandb
as root:
sudo mandb
5. If you want a config file, add it at /etc/rsstube/config
:
sudo mkdir /etc/rsstube && sudo cp templates/config /etc/rsstube/config
Updating
To update rsstube
, use rsstube
with the -U option:
rsstube -U
Depending on where rsstube
is installed, you may need to run this as root:
sudo rsstube -U
If you downloaded the git repository, this will just call git pull
.
There is no need to re-run the install script since the symlinks have already been created.
Usage
rsstube [OPTIONS] <link>
Note, URLs with ampersands (&) should be put in quotes so they aren't misinterpreted as commands by the shell.
Options
-c, --curl-args <curl arguments>
- Pass arbitrary arguments to curl. Not recommended unless you know what you're doing.
-h, --help
- Print help information.
-n, --non-network
- Non-network mode. Attempt to get RSS feed from URL only, and do not download page.
-p, --proxy <proxy>
- Specify a proxy argument for curl. The -x
flag should not be specified.
-q, --quiet
- Make the curl
call in silent mode.
-t, --tor-mode
- Set header information in the HTTP request so you appear to be using the Tor Browser. This is useful if you're using a Tor proxy (with -p
) but Cloudflare blocks your request, demanding you complete a reCAPTCHA. Cloudflare is more suspicious of Tor traffic that is not from the Tor Browser, so if we pretend to be the Tor Browser, we can get around some of this.
-U, --update
- Update rsstube
.
-V, --version
- Get rsstube
version.
A config file may also be specified in /etc/rsstube/config
or in ~/.config/rsstube/config
. (In the case that both are present, only the local config file will be used.) This will provide default options. The options passed as arguments will take precedence over the config file.
Examples
rsstube https://www.youtube.com/channel/UCqC_GY2ZiENFz2pwL0cSfAw
rsstube https://www.youtube.com/watch?v=XzIXc5CTC2M
rsstube "https://www.youtube.com/watch?v=fFlfxwZDFzY&list=PL8D8D4240EC972114"
rsstube -q https://soundcloud.com/greatnessgd
rsstube -p socks5://localhost:9150 https://www.youtube.com/watch?v=XzIXc5CTC2M
rsstube --proxy "socks5h://localhost:9050" -t https://player.fm/series/series-1456689
How It Works
rsstube
gets the built-in RSS feed for various sites. It does not generate its own RSS feed and does not require a server. Generally, it works as such:
1. rsstube
looks at the URL and tries to determine a feed URL from it.
Some sites' feed URLs can be easily derived from the generic URL, for instance by adding /rss
to the end.
2. If it was unable to derive the feed URL from the argument, it downloads the page (with curl
) and tries to determine the feed URL based on information from the page.
Some sites use, for instance, a user ID in their feed URLs, so rsstube
needs to get that user ID from the page itself.
For more details about how feeds for a specific site work, see docs/sites.md.