opusfeed is a cross-platform software for automatically generating a low-quality opus rss feed from another (audio or video) rss feed.
The file format of the generated audio files :
- container format : ogg
- audio codec : opus
- cover codec : jpeg
- zlib
- libopus
- libav
- pcre
- sqlite
- tinyxml2
- libcurl
- openssl
- msys
- mingw
- cmake (>=3.0)
- yasm
- gcc,g++
- pkg-config
- cmake (>=3.0)
- yasm
cd to the directory where you downloaded the source and run the following commands:
$ make init
$ make 3rdparty
$ make opusfeed
the first command will extract and prepare the dependencies in ./tmp/
each to a separate folder and the project's makefiles in ./tmp/opusfeed/
.
the second line will build the dependencies and install them to ./3rdparty/
, log files will be stored in ./logs
.
the third line will build opusfeed and install the final binary to ./bin/
.
opusfeed [options]
the software accepts options in these two forms :
-
option=value, eg :
$ ./opusfeed option1=value1 option2=value2 ...
-
option value, eg :
$ ./opusfeed option1 value1 option2 value2 ...
the options (--quiet
,--verbose
& --help
) don't take values.
at least the following options must be set :
--media-dir
--feed-url
--media-prefix
--db-file
--output-rss
option | descrription |
---|---|
--sample-rate | sample rate in kHz [8,12,16,24,48] (default:48) |
--bit-rate | bit rate in kb/s (default:16) |
--channels | number of channels [1,2] (default:2) |
--embed-cover | embed cover in output [yes,no] (default:yes) |
--use-video | use video to generate cover image if possible [yes,no] (default:yes) |
--cover-quality | jpeg cover quality [0-10] (default:6) |
--cover-width | cover width, 0 for same as input (default:0) |
--cover-height | cover height, 0 for same as input (default:0) |
--preserve-ar | preserve the aspect-ratio of the cover [yes,no] (default:yes) |
--speed-limit | download speed limit in KBytes/s, 0 for unlimited (default:0) |
--follow-location | follow http 3xx redirects [yes,no] (default:yes) |
--ignore-ssl | ignore ssl errors [yes,no] (default:yes) |
--user-agent | http user-agent string (default:Mozilla/5.0) |
--cookies | semicolon separated string of 'var=value' cookies |
--use-auth | use authentication [yes,no] (default:no) |
--auth-user | http authentication user |
--auth-pass | http authentication password |
--use-proxy | use proxy [yes,no] (default:no) |
--proxy-host | proxy host |
--proxy-port | proxy port |
--proxy-type | proxy type [http,socks4,socks4a,socks5,socks5h] (default:http) |
--use-proxy-auth | use authentication (for http proxies) [yes,no] (default:no) |
--proxy-auth-user | http proxy user |
--proxy-auth-pass | http proxy password |
--download-retries | number of retries in case of a failed download (default:5) |
--resume-retries | number of resume attempts before redownloading the file (default:5) |
--retry-delay | delay between retries in seconds (default:10) |
--ip-version | ip version to be used [auto,ipv4,ipv6] (default:auto) |
--preserve-failed | pass original items to the output rss feed when encountering a downloading/converting error [yes,no] (default:yes) |
--max-items | maximum number of items, 0 for unlimited (default:10) |
--max-age | maximum age of items in days, 0 for unlimited (default:0) |
--feed-url | url of an rss feed |
--media-dir | where to store the media files |
--media-prefix | url prefix to be used with in the generated rss feed |
--tmp-dir | temporary directory where partially downloaded files are kept (default:/tmp/) |
--db-file | database file for managing items |
--output-rss | path of the output rss file |
--update-interval | update interval in minutes, 0 for one shot (default:10) |
--exec-on-change | command to execute on data change |
--enable-colors | enable colored output [yes,no] (default:yes) |
--enable-progress | show downloading/converting progress [yes,no] (default:yes) |
--verbose | verbose output |
--quiet | suppress output |
--help | this message |
-
Migrating from version 1.3 :
if you don't wish to rebuild your feed from scratch, run
sqlite3 your-v1.3-db-file.db
and then execute the following statements :alter table items add column downloaded text; alter table items add column converted text; alter table items add column moddate integer; alter table items add column originalsize integer; alter table items add column originalmimetype text; update items set downloaded="true",converted="true",originalmimetype="";
-
The media directory
--media-dir
:The media directory is managed completely by the software, make sure it's not set to a shared folder containing other files.
-
Force updating a specific item :
delete the corresponding file in
--media-dir
. -
Force the regeneration of the output rss file :
The output rss file is regenerated automatically whenever the local data changes or when a related parameter is updated (--preserve-failed & --media-prefix), or when the output file doesn't exist...so if for some reason you wanted to force the software to rewrite the output rss file, just delete it.
-
Other make commands :
-
init dependencies only :
$ make init-3rdparty
-
init opusfeed only :
$ make init-opusfeed
-
clean the dependencies' build files & logs :
$ make clean-3rdparty
-
clean opusfeed's build files & log :
$ make clean-opusfeed
-
clean all build files & logs :
$ make clean
-
wipe everything except the opusfeed binary (this will delete built dependencies) :
$ make wipe
-
build sqlite only :
$ make 3rdparty-sqlite
-
build pcre only :
$ make 3rdparty-pcre
-
build openssl only :
$ make 3rdparty-openssl
-
build curl only (requires openssl) :
$ make 3rdparty-curl
-
build tinyxml2 only :
$ make 3rdparty-tinyxml2
-
build opus only :
$ make 3rdparty-opus
-
build libav only (requires opus) :
$ make 3rdparty-libav
-
By : Alex Izeld
Email : sub7zero@hotmail.com