Menu

Tree [4c82d5] master /
 History

HTTPS access


File Date Author Commit
 contrib 2013-08-21 gromnitsky@users.sourceforge.net gromnitsky@users.sourceforge.net [54a57a] add empty dirs cleaning
 doc 2017-03-15 gromnitsky@users.sourceforge.net gromnitsky@users.sourceforge.net [66a21a] rewrite the build system
 etc 2013-08-26 gromnitsky@users.sourceforge.net gromnitsky@users.sourceforge.net [abf7f6] typos
 homepage 2017-03-15 gromnitsky@users.sourceforge.net gromnitsky@users.sourceforge.net [9097cd] upd readme
 mk 2017-03-15 gromnitsky@users.sourceforge.net gromnitsky@users.sourceforge.net [66a21a] rewrite the build system
 pkg 2017-03-15 gromnitsky@users.sourceforge.net gromnitsky@users.sourceforge.net [bf8557] 0.19.3
 src 2017-03-15 gromnitsky@users.sourceforge.net gromnitsky@users.sourceforge.net [bf8557] 0.19.3
 tests 2017-03-13 gromnitsky@users.sourceforge.net gromnitsky@users.sourceforge.net [bcc150] tests: x-ogg is really just ogg
 README.md 2017-03-16 gromnitsky@users.sourceforge.net gromnitsky@users.sourceforge.net [4c82d5] upd readme
 main.mk 2017-03-16 User Bob User Bob [c9d60e] mk: fix install target for FreeBSD

Read Me

uraniacast

<% ver = git for-each-ref --count=1 --sort=-committerdate --format='%(refname:short)|%(committerdate)' refs/tags.strip.split("|") -%>
Latest release: <%= ver[0] %> (<%= ver[1] %>)

Download{.btn .download__btn target="_blank"} View the source{.btn .git__btn target="_blank"}

git clone git://git.code.sf.net/p/uraniacast/code uraniacast

uraniacast is a non-interactive podcast downloader. It's the CLI app
that works under Linux or FreeBSD.

uraniacast configuration file (by default ~/.uraniacast/config) may
look like this:

set feed(hist.in_our_time) {
    url {http://downloads.bbc.co.uk/podcasts/radio4/iot/rss.xml}
}

hist.in_our_time is just a name we gave to a particular podcast feed.

{title="The Muses Urania & Calliope (Simon Vouet, 1634)"}\

Features

  • Filtering by categories and media types. For example, if a feed
    contains links to both video and audio and we want just audio.

  • Auto-processing podcast files after downloading them (for example, to
    change/add ID3 mp3 tags or to convert from ogg to mp3 or whatever).

  • OPML import/export.

Docs

Requirements

To Run

  • Tcl >= 8.5.x
  • SQLite 3.x w/ the Tcl bindings
  • tDOM >= 0.8.2
  • HTTP retriever such as curl or wget
  • (optionally) TclX >= 8.4

For treatment scripts only:

  • perl-Image-ExifTool
  • ffmpeg
  • id3lib
  • gawk
  • bash

To Build

  • GNU make
  • asciidoc

Installation

  1. Pre-installation steps:

    • Fedora 25

      # yum install git curl asciidoc tdom tclx sqlite-tcl
      
    • FreeBSD 11 (earlier versions are not supported)

      # pkg install git gmake tcl-wrapper asciidoc tdom tcl-sqlite3 tclX
      
  2. Unpack the tarball or clone the repo.

    If you don't want to install uraniacast permanently or just want
    to play w/ it, then go to the next (Setup) section right away. All
    the program executables are in src/ dir; if you want, you may
    symlink them to any dir in the PATH.

  3. Create a directory outside of the unpacked tarball/repo dir.

  4. Type:

    $ make -f ../uraniacast/main.mk man
    

    and as root

    # make -f ../uraniacast/main.mk install
    

    (replace "make" w/ "gmake" in FreeBSD). This will install files in
    the usual system directories under /usr for Linux & /usr/local
    for FreeBSD. If you want a different location, add
    DESTDIR=/some/dir as a make parameter:

    $ make -f ../uraniacast/main.mk install DESTDIR=testdir
    

Setup

  1. Run "uraniacast". It will give you an error:

    uraniacast error: config: Tcl: couldn't read file "~/.uraniacast/config": no such file or directory
    

    That's OK, don't worry. Type:

    $ cp /usr/share/uraniacast/config.sample ~/.uraniacast/config
    

    Edit ~/.uraniacast/config file. Remove all "treatment" lines
    there for the time being.

  2. Read uraniacast(1) man page.

  3. Finally, type:

    $ uraniacast -vs
    

    then go to ~/.uraniacast/media and enjoy.

Bugs

Doesn't work w/ this
particular Tcl versions:

  • 8.5.16
  • 8.6.2

FreeBSD

  • You may encounter
    a buggy version of tcl-wrapper.
  • If you install ffmpeg w/ pkg instead of ports, you won't get mp3
    support in uraniacast_t_convert.sh script.
  • Why are you still using fbsd? It's not 2000 anymore.

News

For release dates see ref tags in the repo, e.g.:

$ git for-each-ref --format='%(refname:short) %09 %(committerdate)' refs/tags

(On a side note, I look at this 8 y.o. Tcl code & I cry. The program
still works fine, but it should be rewritten from scratch. On the
other hand, if it ain't broke, don't fix it.)

0.19.3

Fixed bugs:

  • mk: fix install target for FreeBSD.

0.19.2

  • remove unmaintained FreeBSD port files.

Fixed bugs:

  • uraniacast: user can change global settings for all feeds (which was
    accidentally broken in 17a0db9).
  • uraniacast_t_convert.sh: fix a gawk warning.

0.19.0

  • uraniacast: -M CLO, see the man page for the details.

License

(The MIT License)

Copyright (c) 2009 Alexander Gromnitsky.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.