Trotz allem: nochmal Podcast

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
DerWinzer
Regular
Posts: 26
Joined: Sat Dec 17, 2005 8:26 pm
Location: Dresden/Germany
Contact:

Trotz allem: nochmal Podcast

Post by DerWinzer »

Hi Garvin, Hi s9y-Freunde, Hi Podcast friends. Meine Frage geht zum Podcast Plugin.

Ich habe in den letzten Monaten gelernt Podcasts zu machen, zu schneiden, zu catchen und GEMA gerecht einzusetzen.

Ich arbeite zur Veröffentlichung mit http://www.loudblog.de - Engine und für journalistische Zwecke.

Ein neues journalistisches s9y-Projekt ist nun http://www.netzzeitungnuernberg.de.
Dazu gehört audiomäßig eigenständig http://podcastradionuernberg.de.

Ich möchte Podcasts aber auch im Serendipity unterbringen. Ich habe alles, was ich finden konnte installiert und es findet sich auch im Backend wieder.

Wie aber - ohne Code-Kunde - funktioniert das Ganze, z. B., wenn ich hier eine fertige .mp3 liegen habe, dass es im Frontend Wirkung erzielt?

Danke für hilfreiche Worte und echte, nicht-linkende Links.

Grüße Helmer aka DerWinzer, Radebeul
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Trotz allem: nochmal Podcast

Post by garvinhicking »

Hi!

Die wie ich finde einfachste Lösung MP3-Dateien im Frontend einzubinden, nutzt das Serendipity-Podcast Plugin nur am Rande.

Hier mal eine kleine Anleitung:

Voraussetzung: Serendipity >= 1.0, Podcast Plugin >= 0.8, Erweiterte Eigenschaften von Artikeln-Plugin

1. Einrichten eines "Podcast"-Freien Feldes

Um für einen Eintrag an identischer Stelle immer einen Podcast mit Flash-Abspieler anzubieten, lohnt sich die Verwendung der "Freien Felder".

Dazu geht man über "Plugins Verwalten" in die Liste der Ereignisplugins und klickt auf den Link zu "Erweiterte Eigenschaften für Artikel". Dort findet man ein großes Eingabefeld für "Freie Felder".

Dort trägt man nun einfach "podcast" ein. Falls bereits andere Felder drinstehen, fügt man ", podcast" einfach am Ende zusätzlich ein und speichert dann das Plugin

2. Darstellung des "Podcast"-Freien Feldes

Damit man den Podcast an freier Stelle einfügen kann, muss nun das entries.tpl Template des aktuellen Themes bearbeitet werden.

Dafür öffnet man mit dem Editor seiner Wahl die entsprechende Datei (falls im eigenen Templateverzeichnis keine solche Datei vorhanden ist, einfach die templates/default/entries.tpl ins eigene kopieren und als Basis nehmen).

In der Datei suchen wir nun nach der Stelle wo normalerweise der Eintragstext angezeigt wird. Das sieht ungefähr so aus:

Code: Select all

<div class="serendipity_entry_body">
    {$entry.body}
</div>
Wir wollen nun den Podcast immer nach dem Body einfügen. Dazu ändern wir obigen Code-Block so:

Code: Select all

<div class="serendipity_entry_body">
    {$entry.body}
{if $entry.properties.ep_podcast}
<object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="35" height="18" id="mp3player"><param name=movie value="http://moodle.org/filter/mediaplugin/mp3player.swf?src=http://{$smarty.server.HTTP_HOST}{$entry.properties.ep_podcast|@escape}"><param name=quality value=high><param name=bgcolor value="#ffffff"><embed src="http://moodle.org/filter/mediaplugin/mp3player.swf?src=http://{$smarty.server.HTTP_HOST}{$entry.properties.ep_podcast|@escape}" quality=high bgcolor="#ffffff" width="35" height="18" name="mp3player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>
{/if}
</div>
Das sieht kompliziert aus, ist aber eigentlich ganz einfach. Der Flash-Player von moodle.org wird dazu eingebettet mit der URL des eigenen Podcasts. Über die Attribute width=... und height=... kann man übrigens die Größe des Players steuern. Man kann die URL natürlich auch austauschen gegen einen selbst installierten FlashPlayer wie FLV und Konsorten (frei verfügbar, Google fragen :-) )

3. Podcasten!

Nun sind schon alle Vorbereitungen getroffen. Um einen Podcast zu erstellen einfach:

- "Neuer Eintrag"
- Titel, Text eintragen
- Zum Ende der Seite scrollen, dort beim "Freie Felder"-Abschnitt neben dem Feld "podcast" auf "Mediendatenbank" klicken. Dann die MP3-Datei entweder hochladen, oder falls sie schon in der Datenbank ist, einfach anklicken. Dann wird die URL in das Podcast-Feld eingetragen
- Eintrag speichern
- Eintrag angucken!

Das Podcast-Plugin ist jetzt einzig dafür verantwortlich, die MP3-Datei im RSS-Feed korrekt zu verlinken.

Ich hoffe, dass ist bis hierhin eine Hilfe :)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Trotz allem: nochmal Podcast

Post by garvinhicking »

Hi!

Here's an english translation:

The easist solution to embed MP3-files in your frontend is to only use the serendipity podcast plugin as an addon. The podcast plugin will then only serve podcasts within RSS feeds, but displaying MP3 flash players will be solved using standard serendipity features.

Here's a small HowTo:

1. Create a "podcast" entryproperty field

To show a podcast at a specific place within your blog entry using a Flash-Player can best be solved using the plugin "Extended properties for Entries", which offers the functionality of "Custom Fields".

To install that plugin click on "Configure plugins", go to the section of event plugins and click on the link "Click here to install an event plugin". Click on the install button next to the mentioned Extended-properties plugin.

After the plugin is installed you will be redirected to its configuration screen. There you'll see the listing of Custom Fields. Simply enter "podcast" into that large textarea. If there are already other feeds, you can simply add ", podcast" at the end to add a podcast property field.

Then save the new configuration of the plugin.

3. Displaying the "podcast" entryproperty field

To be able to actually see your podcast in the blog entry, you will need to edit the entries.tpl template file of your current active template.

Use an Editor and FTP client to open up this file - if it does not exist in your template directory, copy it from /templates/default/ into your current one.

In that file we now look for a place like this:

Code: Select all

<div class="serendipity_entry_body">
    {$entry.body}
</div>
We now want to show our podcast always after the entry body. Which is why we change the block above to something like this:

Code: Select all

<div class="serendipity_entry_body">
    {$entry.body}
{if $entry.properties.ep_podcast}
<object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="35" height="18" id="mp3player"><param name=movie value="http://moodle.org/filter/mediaplugin/mp3player.swf?src=http://{$smarty.server.HTTP_HOST}{$entry.properties.ep_podcast|@escape}"><param name=quality value=high><param name=bgcolor value="#ffffff"><embed src="http://moodle.org/filter/mediaplugin/mp3player.swf?src=http://{$smarty.server.HTTP_HOST}{$entry.properties.ep_podcast|@escape}" quality=high bgcolor="#ffffff" width="35" height="18" name="mp3player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>
{/if}
</div>
That might look complicated. But it isn't. The Flash-Player of moodle.org will be embedded and using the data input of your own podcast URL. Using the attributes 'width' and 'height' inside the code block you can adjust how large the player will be displayed.

Of course you can exchange that URL with any other Flash Player you like, simply alter the HTML code for that. Ask Google for Free Flash MP3 Players like FLV. :)

The basic important thing is the variable {$entry.properties.ep_podcast}. This variable holds the URL to your Podcast MP3 file, and needs to be inserted into the HTML code.

3. Podcast!

Now all preparations have been made. To publish a podcast do this:

- "Create entry"
- Enter the title and body of your blog entry
- Scroll to the end of the page where you see the list of Custom Fields. A "podcast" field will be shown there with a "Media" button next to it. Click on that button and then either upload your MP3 file or choose it from your media database. The URL of that podcast MP3 file will then be saved within the podcast field of your entry.
- Save the entry
- View your entry

Now the only thing that the podcast plugin does is to put a link into your RSS file so that itunes and other software downloads the mp3 file automagically.

Best regards,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
robw
Regular
Posts: 20
Joined: Thu Mar 30, 2006 3:05 pm
Contact:

Post by robw »

Just a final note:

The podcast plugin is coded to look for a field called 'podcast', so this method will not work if you decide to call the field something else, or change the case of the field - so 'Podcast' will not work.

Cheers
Rob
blog.brockha.us
Regular
Posts: 695
Joined: Tue Jul 03, 2007 3:34 am
Location: Berlin, Germany
Contact:

Post by blog.brockha.us »

- "Neuer Eintrag"
- Titel, Text eintragen
- Zum Ende der Seite scrollen, dort beim "Freie Felder"-Abschnitt neben dem Feld "podcast" auf "Mediendatenbank" klicken. Dann die MP3-Datei entweder hochladen, oder falls sie schon in der Datenbank ist, einfach anklicken. Dann wird die URL in das Podcast-Feld eingetragen
- Eintrag speichern
- Eintrag angucken!
Das scheitert bei Videos alleine schon daran, dass Videos im Mediaplayer offenbar nicht selektierbar sind (ich versuche gerade mit einem MP4). Kann man da etwas machen, dass das doch geht?

[später:] Das geht doch. Man kann nur nicht das Bildchen klicken, sondern muss den Link darunter klicken.

Aber was genau macht denn das Podcast Plugin hier? Ich kann im RSS feed erst mal nichts sehen, was darauf hindeutet, dass irgendwie mein Film embedded wäre oder so? Wo sehe ich da was?

[Noch etwas später] Wenn ich mir den XML Code ansehe, dann geht da doch was:
<enclosure url="http://blog.brockha.us/uploads/Filme/11072007007.mp4" type="audio/mp3" length='3691871' />

Das ist im Prinzip schon super, aber was natürlich etwas blöd ist ist, dass man offenbar nur eine Stream Version mit diesem Plugin benutzen kann, oder? Ich könnte jetzt einen MP4 Player in die entries.tpl einbinden, und den type auf "video/mp4" oder ähnliches setzen, dann wäre ich aber immer auf MP4 festgenagelt.

Übersehe ich da etwas? Oder gibt es eine Möglichkeit, wie es einfacher geht, beliebige Filchen (nächstes Problem ist ja auch noch die statische Auflösung des Players) als Podcast einbinden kann?

Hmm.. Grübel.. Wie macht das WP eigentlich? Da gibt es doch auch so ein Plugin (podpress heißt das da wohl).. Hat das schon mal jemand gesehen?
- Grischa Brockhaus - http://blog.brockha.us
- Want to make me happy? http://wishes.brockha.us/
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!
[später:] Das geht doch. Man kann nur nicht das Bildchen klicken, sondern muss den Link darunter klicken.
Oh, strange. Auch beim Klick auf das Bild sollte es eigentlich gehen?!
Aber was genau macht denn das Podcast Plugin hier? Ich kann im RSS feed erst mal nichts sehen, was darauf hindeutet, dass irgendwie mein Film embedded wäre oder so? Wo sehe ich da was?
Doch, im RSS-Feed werden dann eigentlich 'enclosures' eingefügt. Probier's mal mit ner MP3 Datei, ob bei einem Video auch ein enclosure eingefügt wird weiß ich nicht.
Das ist im Prinzip schon super, aber was natürlich etwas blöd ist ist, dass man offenbar nur eine Stream Version mit diesem Plugin benutzen kann, oder? Ich könnte jetzt einen MP4 Player in die entries.tpl einbinden, und den type auf "video/mp4" oder ähnliches setzen, dann wäre ich aber immer auf MP4 festgenagelt.
Jein. Du kannst ja beliebig viele Podcast-Entryproperties-Felder einfügen. Eins für MP4, eins für MP3, eins für AVI etc.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
blog.brockha.us
Regular
Posts: 695
Joined: Tue Jul 03, 2007 3:34 am
Location: Berlin, Germany
Contact:

Post by blog.brockha.us »

Hi Garvin.
garvinhicking wrote:
[später:] Das geht doch. Man kann nur nicht das Bildchen klicken, sondern muss den Link darunter klicken.
Oh, strange. Auch beim Klick auf das Bild sollte es eigentlich gehen?!
Geht nicht, liegt wahrscheinlich daran, dass eben kein Bild erkannt wird sondern ein application/octet-stream. Es ist ein MP4 Video gewesen.
garvinhicking wrote: Doch, im RSS-Feed werden dann eigentlich 'enclosures' eingefügt. Probier's mal mit ner MP3 Datei, ob bei einem Video auch ein enclosure eingefügt wird weiß ich nicht.
Das ist wahrscheinlich das Problem gewesen.
garvinhicking wrote:
Das ist im Prinzip schon super, aber was natürlich etwas blöd ist ist, dass man offenbar nur eine Stream Version mit diesem Plugin benutzen kann, oder? Ich könnte jetzt einen MP4 Player in die entries.tpl einbinden, und den type auf "video/mp4" oder ähnliches setzen, dann wäre ich aber immer auf MP4 festgenagelt.
Jein. Du kannst ja beliebig viele Podcast-Entryproperties-Felder einfügen. Eins für MP4, eins für MP3, eins für AVI etc.
Klar, das kann man machen, das "enclosered" ;) dann aber das Plugin nicht mehr, da es auf ein Feld mit einem hard codierten Namen festgelegt ist.

Ich habe dann natürlich gleich mal in das Plugin geschaut und es schon ein wenig umgestrickt, so dass es nun auch MP4 Filme wie ein Bild per Mediadb in den Text einfügen kann. Dabei habe ich gemerkt, dass der Code des Plugins, der den Player einfügen sollte, gar nicht aufgerufen wurde. Als Event Hook wurde da 'entry_display' genommen. Gibt es den gar nicht mehr? Ich habe jetzt mal auf 'frontend_display' umgestellt, da muss man dann aber auch einige Code Änderungen machen.
- Grischa Brockhaus - http://blog.brockha.us
- Want to make me happy? http://wishes.brockha.us/
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Doch, 'entry_display' ist im Code der include/functions_entries.inc.php enthalten?!

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
blog.brockha.us
Regular
Posts: 695
Joined: Tue Jul 03, 2007 3:34 am
Location: Berlin, Germany
Contact:

Post by blog.brockha.us »

Verstehe ich nicht.. Ich habe einfach mal als erstes einen Debug Text in den Enty Body gleich beim Fangen des Events geschrieben. Kommt nicht an!

Aber ich verzweifele gerade sowieso etwas mit dem Caching. Meine Änderungen im Plugin Code kommen sowieso immer erst an, wenn ich den entsprechenden Artikel noch einmal speichere.. Kann man das Caching eigentlich irgendwo ausschalten? Während man Sachen ausprobiert ist das doch eher lästig..
- Grischa Brockhaus - http://blog.brockha.us
- Want to make me happy? http://wishes.brockha.us/
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Das Caching kannst Du im Plugin "Erweiterte Eigenscahften für Artikel" ausschalten.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
blog.brockha.us
Regular
Posts: 695
Joined: Tue Jul 03, 2007 3:34 am
Location: Berlin, Germany
Contact:

Post by blog.brockha.us »

Mich würde mal interessieren, ob irgendjemand das podcast plugin noch in seiner ursprünglich gemeinten Art einsetzt, oder alle nur Garvins Vorschlag benutzen?

Ich würde nämlich sehr gerne diese recht cryptische [podcast: ..] Semantik raus nehmen, da es meiner Meinung nach nicht nötig ist (man kann damit auch nicht viel mehr beschreiben, als mit einem href auf eine Multimediadatei) und es dem normalen Anwender wohl nicht zuzumuten ist. Alleine, dass die URL zum Film/Sound dann manuell eingegeben werden muss, dürfte viele schon abschrecken.

Viel charmanter finde ich ja die Version, einfach Filme/Sound aus der Medidatenbank in den Artikel einzubinden (so wie man das auch mit Bilder macht) und damit dann fertig ist. Scheint mir doch deutlich intuitiver.

Das Plugin, das ich jetzt für mich doch deutlich verändert habe, kann dann diesen Link durch einen passenden Player Eintrag ersetzen. Klappt bei mir schon ziemlich gut.
- Grischa Brockhaus - http://blog.brockha.us
- Want to make me happy? http://wishes.brockha.us/
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!
Ich würde nämlich sehr gerne diese recht cryptische [podcast: ..] Semantik raus nehmen, da es meiner Meinung nach nicht nötig ist (man kann damit auch nicht viel mehr beschreiben, als mit einem href auf eine Multimediadatei) und es dem normalen Anwender wohl nicht zuzumuten ist. Alleine, dass die URL zum Film/Sound dann manuell eingegeben werden muss, dürfte viele schon abschrecken.
Das würde ich nicht rausnehmen, man kann es doch immer optional drinnen lassen? Warum Funktionalität entfernen?

Ein Aufbessern wäre natürlich trotzdem sehr hübsch. :-)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
blog.brockha.us
Regular
Posts: 695
Joined: Tue Jul 03, 2007 3:34 am
Location: Berlin, Germany
Contact:

Post by blog.brockha.us »

Hmm.. Grübel.. Dann werde ich wahrscheinlich wohl lieber ein alternatives Plugin machen, muss man ja nicht releasen.

Der Code wird für mich noch schwerer überblickbar mit der [podcast: ] Notation, ich habe gerade wohl zu wenig Zeit, das noch mitzunehmen. Aber mal schauen. Evtl. ist das ja doch nicht so wild.

Problem für mich ist hier vor allem die Regular Expression Syntax in PHP, die in diesem Plugin ganz extrem genutzt wird, und die für mich echt etwas unüberschaubar ist, vor allem, weil es nicht eine Notation gibt, sondern gleich ziemlich viele, die auch noch unterschiedliche Eigenschaften haben usw. Da sind mir beim debuggen sowieso schon graue Haare gewachsen, bei dem Versuch zu verstehen, warum manche Expressions einfach nicht anziehen wollen.. :)
- Grischa Brockhaus - http://blog.brockha.us
- Want to make me happy? http://wishes.brockha.us/
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Vielleicht kann ich ja helfen, indem ich mir einfach mal anschaue wie Du das Plugin verändert hast? Theoretisch ist die [podcast] sache ja nur eine Alternative, wie ein textformatierungsplugin. Der ganze rest müsste ja unabhängig davon laufen.
Problem für mich ist hier vor allem die Regular Expression Syntax in PHP, die in diesem Plugin ganz extrem genutzt wird, und die für mich echt etwas unüberschaubar ist, vor allem, weil es nicht eine Notation gibt, sondern gleich ziemlich viele, die auch noch unterschiedliche Eigenschaften haben usw. Da sind mir beim debuggen sowieso schon graue Haare gewachsen, bei dem Versuch zu verstehen, warum manche Expressions einfach nicht anziehen wollen.. :)
Mit RegExps kenne ich mich mittlerweile recht gut aus. Hast Du eine spezielle Frage damit, oder kannst Du deine Probleme an einem Beispiel fest machen? Da helfe ich gerne....wenn ich kann :)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
blog.brockha.us
Regular
Posts: 695
Joined: Tue Jul 03, 2007 3:34 am
Location: Berlin, Germany
Contact:

Post by blog.brockha.us »

Okay. Code:

Code: Select all

$playerRewritePattern = '@<a\s+[^>]*?href\s*=\s*('|")([^'"]+\.(3gp|mp3|mp4|mov))\1[^>]*?>.*?</a>@Usie';

$eventData['body'] = preg_replace(
                        $playerRewritePattern,
                        'sprintf($this->playerHTML[strtolower("\3")], "\2", "\2"); ',
                        $eventData['body']);
Klappt so weit gut, nur wenn in dem Text 2 links auf (z.B.) mp3 Dateien sind, dann wird alles zwischen den beiden Tags gleich mit entfernt. Irgendwo ist das Pattern also scheinbar zu geräßig, oder? Aber wo?! [haare_rauf!]

Was genau ist hier übrigens Usie?

P.S.: Oh mann.. Das scheint es genau zu sein.. Ohne U klappt es auf einmal. Hebt die Option U alle ? in der Regex auf?
- Grischa Brockhaus - http://blog.brockha.us
- Want to make me happy? http://wishes.brockha.us/
Post Reply