- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with get_iplayer
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
The get_iplayer module lets you access content from the BBC iPlayer service.
This module installs get_iplayer from its source location on the web. This provides a command line client and a web-based PVR service. The module also installs a service for PVR functionality. The software can only access video content from a UK-based IP address.
- Creates /etc/get_iplayer directory
- Installs software into /usr/local
- Creates get_iplayer service in native service provider
- Runs service on port 1935
A system running a RHEL-based or Debian-based OS. On RHEL, extra YUM repositories must be added to satisfy the package requirements. These repositories are EPEL and Nux Dextop. They can be added them manually or by including the following Forge modules:
https://forge.puppet.com/stahnma/epel https://forge.puppet.com/m0byd1ck/nux
include 'get_iplayer'
The above gets the client software installed. Make sure to follow the setup requirements above. The command line client can be accessed by running:
/usr/bin/get_iplayer
The PVR service can be accessed from:
The PVR service runs on localhost (127.0.0.1) by default so to access it remotely, set the listen_address parameter:
class { 'get_iplayer':
listen_address => '0.0.0.0'
}
class { 'get_iplayer':
listen_port => '1935'
}
class { 'get_iplayer':
output_dir => '/home/joebloggs/Downloads'
}
By default, the latest version of the software is installed from the ftp site. See http://www.infradead.org/get_iplayer/CHANGELOG-get_iplayer for available versions and set the version manually:
class { 'get_iplayer':
version => '2.94'
}
This software has the following prerequisites:
perl perl::CGI perl::Env perl::HTML::Parser perl::HTTP::Cookies perl::libwww::perl perl::XML::Simple rtmpdump or flvstreamer ffmpeg or libav-tools
The module attempts to install these using the ensure_package function. If this causes a problem, prerequisite installation can be skipped:
class { 'get_iplayer':
manage_prereqs => false
}
To set additional options the options_extra takes a hash:
class { 'get_iplayer':
options_extra => { 'subdir' => true, subdirformat => '<nameshort>' }
}
The above option causes the PVR service to create a subdirectory for the download. For a complete list of options, run:
get_iplayer --dump-options
- get_iplayer: Main class, includes all other classes
- get_iplayer::install: Handles the software source.
- get_iplayer::config: Handles the PVR service configuration.
- get_iplayer::service: Handles the PVR service.
The below parameters are available in the get_iplayer class:
####base_dir
Target directory for tarball. Defaults to '/usr/local'.
####conf_dir
PVR service config directory. The options file and the generated cache are stored here. Defaults to '/etc/get_iplayer'.
####listen_address
PVR service listen address. Defaults to '127.0.0.1'.
####listen_port
PVR service listen address. Defaults to '1935'.
####manage_prereqs
Installs perl dependencies and external commands (see full description in Setup section). Defaults to true.
####options_extra
Extra options for PVR service (see full description in Setup section). Defaults to an empty hash: {}
####output_dir
Download directory for PVR service. Defaults to '/var/get_iplayer'.
####prereqs
Prerequisite packages. Defaults to a hash in get_iplayer::params.
####service_env_path
Path to service environment file.
####service_path
Path to service file.
####service_template
Templace for service file.
####source_location
FTP location of software source file. VERSION is replaced by the version parameter. Defaults to:
ftp://ftp.infradead.org/pub/get_iplayer/get_iplayer-__VERSION__.tar.gz
####version
Set version.
This module has been tested with Puppet 4.
The module has been tested on:
- CentOS 6/7
- Ubuntu 12.04/14.04/14.10/15.04
Please send pull requests.