node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

utuber

utuber

A minimal HTTP server made with Express and Youtube connetivity with ytdl to make downloading your favourite Youtube clips easier.

Installation

As root:

npm install -g utuber

Or as local: npm install utuber

Configuration

Server

Server can be used either as a module, when it exports function start, that takes an object as parameters. On CLI mode, it takes three commandline arguments. All options are optional, the defaults work fine in many cases.

Module

Leave options that you do not want to change undefined:

    o = {p: [PORT], P: [HOMEPATH], a: [ALLOWEDCHARACTERS]};
u.start(o);```
 
* Define p to change server bind port
* Define P to change download destination (defaults to current directory)
* Define a to change the regular expression to parse title to filename (allowed characters regexp)
 
#### CLI
Same options as above, with CLI arguments:
* -p
* -P
* -a
 
### Client
Change `uTuberServer` variable at the beginning of the bookmark to point to your server.
 
## Usage
 
utuber is split in two pieces; the server and the browser.
 
### To start the server
```node utuber``` (root mode)
```node ~/node_modules/utuber/bin/utuber```
 
To run the server as a service, see [forever](https://github.com/nodejitsu/forever).
Future release will incorporate this option.
 
### To use the client
Create a bookmark to your favourite browser and copy-paste the 
contents of bookmark.html to the target. Done.
 
The client will show an alertbox with the results. Future releases will include a nice layer popupthingy.
 
## TBD
This is a small showcase on a whim type of project, so don't expect much updates. Will do if can do.
 
* Add security - Currently anybody can make requests, you should not run this server on a public machine
* Nicer output - Alerts are lame
* Options on click - Change to name and select location? Well, at least name.
* Make the bookmark less hideous by using other than the full jQuery library for one getJSON?
* So, so many more