Skip to content

a cross-platform software for automatically generating a low-quality opus rss feed from another (audio or video) rss feed.

Notifications You must be signed in to change notification settings

sub7zero/OpusFeed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpusFeed 1.5

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

Dependencies :

  • zlib
  • libopus
  • libav
  • pcre
  • sqlite
  • tinyxml2
  • libcurl
  • openssl

Building environment under Windows :

  • msys
  • mingw
  • cmake (>=3.0)
  • yasm

Building environment under Linux :

  • gcc,g++
  • pkg-config
  • cmake (>=3.0)
  • yasm

Building steps :

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/.

Usage :

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

Options :

option descrription
--sample-ratesample rate in kHz [8,12,16,24,48] (default:48)
--bit-ratebit rate in kb/s (default:16)
--channelsnumber of channels [1,2] (default:2)
--embed-coverembed cover in output [yes,no] (default:yes)
--use-videouse video to generate cover image if possible [yes,no] (default:yes)
--cover-qualityjpeg cover quality [0-10] (default:6)
--cover-widthcover width, 0 for same as input (default:0)
--cover-heightcover height, 0 for same as input (default:0)
--preserve-arpreserve the aspect-ratio of the cover [yes,no] (default:yes)
--speed-limitdownload speed limit in KBytes/s, 0 for unlimited (default:0)
--follow-locationfollow http 3xx redirects [yes,no] (default:yes)
--ignore-sslignore ssl errors [yes,no] (default:yes)
--user-agenthttp user-agent string (default:Mozilla/5.0)
--cookiessemicolon separated string of 'var=value' cookies
--use-authuse authentication [yes,no] (default:no)
--auth-userhttp authentication user
--auth-passhttp authentication password
--use-proxyuse proxy [yes,no] (default:no)
--proxy-hostproxy host
--proxy-portproxy port
--proxy-typeproxy type [http,socks4,socks4a,socks5,socks5h] (default:http)
--use-proxy-authuse authentication (for http proxies) [yes,no] (default:no)
--proxy-auth-userhttp proxy user
--proxy-auth-passhttp proxy password
--download-retriesnumber of retries in case of a failed download (default:5)
--resume-retriesnumber of resume attempts before redownloading the file (default:5)
--retry-delaydelay between retries in seconds (default:10)
--ip-versionip version to be used [auto,ipv4,ipv6] (default:auto)
--preserve-failedpass original items to the output rss feed when encountering a downloading/converting error [yes,no] (default:yes)
--max-itemsmaximum number of items, 0 for unlimited (default:10)
--max-agemaximum age of items in days, 0 for unlimited (default:0)
--feed-urlurl of an rss feed
--media-dirwhere to store the media files
--media-prefixurl prefix to be used with in the generated rss feed
--tmp-dirtemporary directory where partially downloaded files are kept (default:/tmp/)
--db-filedatabase file for managing items
--output-rsspath of the output rss file
--update-intervalupdate interval in minutes, 0 for one shot (default:10)
--exec-on-changecommand to execute on data change
--enable-colorsenable colored output [yes,no] (default:yes)
--enable-progressshow downloading/converting progress [yes,no] (default:yes)
--verboseverbose output
--quietsuppress output
--helpthis message

Notes :

  • 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
      

About :

By : Alex Izeld
Email : sub7zero@hotmail.com

About

a cross-platform software for automatically generating a low-quality opus rss feed from another (audio or video) rss feed.

Resources

Stars

Watchers

Forks

Packages

No packages published