MyPodcastPublisher Version 0.4
User Manual

***Draft ***


MyPodcastPublisher is a MySQL/PHP software which help in publishing audio and video podcast on your own web site.

With MyPodcastPublisher you can create several Podcast Channels and publish episode for them. MyPodcastPublisher will manage the display in a web browser, but also RSS feeds that are compatible with podcast reader like iTunes or Nokia Podcast Reader.

MyPodcastPublisher offer management tools with access rights levels (admin, editor, author, reader) and stats.


MyPodcastPublisher needs the following :

  • mbstring and iconv support on the server for string transformation to UTF-8 format.
  • gd2 library for JpGraph & TrueType fonts installed on server to generate text in the stat images.

MyPodcastPublisher was tested successfully with

  • PHP 5.1.2 & 5.2.0
  • MySQL 5.0.32
  • Apache 2.0
  • Firefox (recommended), IE 6.0


Source files

Unzip all files in a local directory. You should wait before uploading everything in your system, some configuration might be needed.

MySQL Configuration

MyPodcastPublisher is using a mySQL tables to store informations about podcasts. You can use an existing database, and just add the required tables or create a new database for MyPodcastPublisher.

Create a new database and user (optional) :

You can create a database and a user with a tool like phpMyAdmin, or you can use the command line interface of mySQL. Bellow is an example of creating the table with mySQL command line.

web-server:~# mysql -u root mysql -p
Enter password:

mysql> CREATE DATABASE podcastadmin;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON podcastadmin.* TO podcastadmin@localhost;
Query OK, 0 rows affected (0.03 sec)

mysql> SET PASSWORD FOR podcastadmin@localhost=PASSWORD('podcastadmin123');
Query OK, 0 rows affected (0.00 sec)

Create mySQL tables :

The tables to creates are in the file "podcastadmin.sql". Just import the file with a tool like phpMyAdmin, or cut and paste the file content in the mysql command line.

Configure MyPodcastPublisher for mySQL :

Edit the configuration file in [ROOT_INSTALLATION]/manager/config/default.xml" and modify the right fields with the mySQL database name, user login, user password and server host address.

Administrator Access

Read access to Podcasts for everybody is allowed by default. However, administration and authoring will need access rights. In order to start you will need to create a "superuser" in your database and configure the basic Apache/PHP authentication framework.

Create the "superuser" :

You need to create at least a "superuser" in your user database. Role value for a superuser is '4', and id value must be greater than 0 :

INSERT INTO `authors` ( `id` , `role` , `login` , `name` , `email` )
VALUES ('1', '4', 'webmaster', 'My Name', 'myemail@domain.tld');

Configure Apache/PHP authentication framework :

Edit the file ".htaccess" in folder "login/" and change the string "/path_to_password_file" by the right path to the file where you have your password file defined. For more information on .htaccess file see :

From the management console you will then have the ability to add other users with appropriate rights in MyPodcastPublisher, as soon as you have also provisionned the right Apache/PHP credentials in the .htaccess file.

Note : There is plan to improve the user/authentication framework in the future.

JpGraph Installation

In order to have beautiful statistics, MyPodcastPublisher is using JpGraph. Php code for JpGraph is included in MyPodcastPublisher, however you might have to activate on your system the support of GD library, or microsoft fonts.

More information about JpGraph installation will be provided later, by this time please refer to JpGraph installation documentation.

ModRewrite configuration

Some Podcast or RSS readers does not support PHP files as source for media content. For example files must have the .mp3 extension to be understood by iTunes. To have statistics MyPodcastPublisher will then need ModRewrite ability on your system to change an mp3 file to a php file.

The following configuration should be supported on a .htaccess file at the root of the installation folder :

RewriteEngine on
RewriteRule ^podcast-([0-9]+)\.mp3$ podcast.php?play=$1 [L]
RewriteRule ^podcast-([0-9]+)\.mp4$ podcast.php?play=$1 [L]
RewriteRule ^podcast-([0-9]+)\.m4a$ podcast.php?play=$1 [L]
RewriteRule ^podcast-([0-9]+)\.m4v$ podcast.php?play=$1 [L]
RewriteRule ^podcast-([0-9]+)\.mov$ podcast.php?play=$1 [L]
RewriteRule ^podcast-([0-9]+)\.wmv$ podcast.php?play=$1 [L]
RewriteRule ^podcast-([0-9]+)\.flv$ podcast.php?play=$1 [L]
RewriteRule ^podcast-([0-9]+)\.pdf$ podcast.php?play=$1 [L]

Upload source and configuration files

You are now ready to upload source, configuration and .htaccess files on your production system.

Files and folders to upload :

  • "files/" folder
  • "login/" folder
  • "manager/" folder
  • "templates/" folder
  • "index.php" file
  • "podcast.php" file
  • ".htaccess" file, if you don't already have your own. If you already have one, add inside the ModRewrite rules.

Files and folders that do not need to be uploaded :

  • "manual/" folder
  • "podcastadmin.sql" file
  • "readme.txt" file

Understanding ...

Configuration Files

MyPodcastPublisher uses an XML file to storeconfigration informations. By default MyPodcastPublisher uses the file with name "default.xml".

However, if a file with a name [SERVER_NAME].xml, where [SERVER_NAME] is the same value as the PHP variable $_SERVER["SERVER_NAME"], this file will be used instead. This feature gives you the abitlity to have a separate configuration file on a test system (for example your local dev server) and one on a production system. When uploading all the files from your development system to the production system you have less risk to replace the configuration file by a test configuration file.



Member login - Stats
Copyright 2003 - PhpConcept

Powered by PcWeb