Project

General

Profile


Hört macht unterstützt freie Radios

Freie Radio App - Entwickler

Versionen

Ziel ist die App im Januar / Februar 2018 zu veröffentlichen

Zugang

Wie kommen wir in die App?

  • XML schreiben > Vorlage
  • Auf Server legen
  • Radio free FM die URL für die Datei schicken

Bei uns kann keiner XML

  • Excel nach Vorlagen ausfüllen
  • An Radio free FM schicken
  • Wir konvertieren Eure Excel in eine XML und schicken sie Euch zurück
    (gilt derzeit nur für die Stationsdaten - Programmdaten per Hand schreiben wird zuviel)

oder einarbeiten in XML: Kurzworkshop XML

Datenkonzept

Durch denzentrale Lagerung der Stationsdaten hat jedes Radio die Hoheit über seine Daten selbst.

Datenkonzept ist zweigeteilt:
- Grunddaten der Sender werden in der apk mitgeliefert
- Stationsdaten werden bei Installation nachgezogen

Grunddaten = meta.xml

  • Stationsdaten ohne Programmplan
  • url zu den station.xml der beteiligten Radios
  • für alle Stationen zusammen eine Datei
  • liegen zentral bei Radio free FM http://app.freefm.de/meta.xml (Liegt unter /var/www/app.freefm.de)

Stationsdaten = station.xml

  • Grunddaten + Programmplan
  • für jede Station eine Datei
  • liegen bei jedem Sender dezentral

Bei Installation werden die Stationsdaten abgeholt und damit die Grunddaten aktualisiert.
Bei Aktualisierungen wird die meta.xml auf neue Grunddaten (neue Sender, neu url) geprüft und ggf. neue Stationsdaten nachgeladen.

Änderungen

Vielfältigkeit und steter Wandel zeichnen die Freien Radios aus. Wir haben versucht, das Konzept dafür fit zu machen:

  • Neue Sender können jederzeit über einen Eintrag in der meta.xml hinzugefügt werden.
    Das Aktualisierungskonzept der App wird derzeit noch entwickelt.
  • Ablageorts einer URL: die neue Url wird in der meta.xml geändert. Kann die app die station.xml eines Senders nicht finden, prüft sie die url in der meta.xml und findet dort die neue url.
  • Mehrfachnennung: Durch Aufdoppeln der Knoten von Attributen (inklusive Unterpunkte) können Informationen bei den Sendern selbst hinzugefügt werden. In der Darstellung wird entsprechend nach unten verlängert. Bei Programmierung sollten alle Eventualitäten berücksichtigt werden.

Sendezeiten

Die Sendezeiten über alle Freien Radios abzubilden ist eine der grundlegensten Herausforderungen. Diese Sammlung erhebt keinen Anspruch auf Vollständigkeit und wird erweitert.

Serien
tagesorientiert einmalig
täglich
wochenorientiert wöchentlich
werktäglich
14tägig ungerade / gerade
laufend ab Startdatum Datum mit Wiederholungsfrequenz = 2
4wöchig laufend ab Startdatum mit Wiederholungsfrequenz = 4
4wöchig invertiert: einmaliger Aussetzer laufend ab Startdatum mit Wiederholungsfrequenz = 4
monatsorientiert Monatswoche 1. bis 5.
letzter / erster im Monat
zweitletzter / zweiter im Monat
jahresorientiert quartalsweise soundsovielter im Quartal
Wiederholungen
tagesorientiert am Tag danach / davor

Episoden: mehrere Themenfolgen in einer Serie

Bekannte Probleme

  • Tages- / Monats- / Jahreswechsel bei Sendungen über 0 Uhr hinaus
  • 4. oder 5. fällt auf einen Monatswechsel
  • gerade / ungerade Tausch, wenn KW 53 auf KW1 wechselt

Genre

In Freien Radio eigentlich ungmöglich: Die Festlegung auf Genre. Man will sich in keine Schublade pressen lassen. Für die Wiederauffindbarkeit der Sendungen mit ähnlichen Interessen muss es aber sein. Auf dem BfR Kongress in Potsda 2014 haben wir deshalb Genre festgelegt. Ev. werden sie in Zukunft angepasst.

ID Name Erläuterung
1 Alternative Rock, Punk, Grunge, Metal, Blues, Soul, Beat, Country
2 Elektronika House, Techno, Elektro, Drum´n´Bass ...
3 HipHop
4 Jazz
5 Klassik
6 Reggae
7 R'n'B / Black
8 Singer-Songwriter
9 U-Musi & Schlager Volkstümliche Musik, Orchester, James Last, Bert Kämpfert
10 Volksmusik originale Volksmusik, Bänkelsang, Guggenmusi, Jodeln, Blasmusik
11 World Worldmusik
12 SoundExperiment
13 AndereSpachen
14 Gesellschaft Politik, Arbeit, Soziales, Wirtschaft, Antifa, ...
15 International EineWelt, Frieden, Menschenrechte, ...
16 Inklusion Inklusion, Behinderung, Barrierefreiheit
17 Kinder Jugend
18 Kultur Literatur, Fantasy, Film, Theater, ...
19 Medien Computer, Social Media, Rundfunk
20 LGBTI-Gender LGBTI, Gender, Frauen, Männer
21 ReligionEthik
22 Satire
23 Sport
24 Talk Talk, Diskussion, wenn sich was nicht unter den anderen spezifizieren läßt
25 Umwelt
26 Wissenschaft Forschung, Medizin, ...

XML-Schema

info

media-channels

programme

Categories (Genre)

  • Es werden maximal die ersten 3 angegebenen Genre ausgewertet.
  • Die ID ist für die Anzeige ausschlagebend
  • Der Name wird als Schlagwort in der Suche verwendet.
<categories>
  <category name="Reagge    " id="12"/>                
  <category name="Elektronika" id="2"/>
</categories>

Transmit-times

mit "transmit-times" (plural mit s) beginnt der Bereich, der alle Sendezeiten einer Sendung/Redaktion beschreibt.
  • es können mehrere Sendezeiten für eine Sendung angegeben werden.
  • jede Sendezeit beginnt mit transmit-time (singluar ohne s)
  • Rhytmusregeln werden in Sondersendung, täglich (daily), wochenbasiert (weekly) oder monatsorientiert (weekOfMonth) unterschieden.

Recurrence definiert den Unterschied zwischen Sondersendung und Serie
recurrence="false" ist eine Sondersendung
recurrence="true" ist eine regelmäßigen Ausstrahlung (Serie).

Rerun definiert den Unterschied zwischen Erstausstrahlung und Wiederholung
rerun="false" ist eine Erstausstrahlung
rerun="true" ist eine reine inhaltliche Wiederholung eines anderen Termins

Allgemeines
  • Nicht-wiederkehrende Sendungstermine überschreiben wiederkehrende Sendungstermine grundsätzlich
  • Wiederkehrende Sendungstermine werden in ihrer Prio abgearbeitet, wenn alle Prios gleich sind gewinnt bei Kollisionen nur ein Termin
  • Regeln werden NICHT auf Konsistenz geprüft dies muss schon bei der Sendeplanerstellung geschehen
<transmit-times>
                <!--Sondersendung-->
                <transmit-time date-from="2013-08-21T15:00:00.000+02:00" date-to="2013-08-21T16:59:59.000+02:00" recurrence="false" rerun="false"/>
                <!--regelmäßige Ausstrahlungen (Serien)-->
                <transmit-time recurrence="true">

                    <!-- tägliche Sendezeit beginnt mit daily ...-->
                    <!--- Jeden Tag von 17 bis 19 Uhr -->
                    <daily time-from="17:00:00" time-to="18:59:59"/>

                    <!--Senderhytmus wochenbasiert beginnt mit weekly ...-->
                    <!--- Jede Woche Montags von 17 bis 19 Uhr -->
                    <weekly day="MO" priority="0" time-from="17:00:00" time-to="18:59:59"/>
                    <!--- Alle 4 Wochen Freitags von 17 bis 19 Uhr, mit Startdatum -->
                    <weekly day="FR" priority="0" time-from="17:00:00" time-to="18:59:59" weekFrequency="4" date-from="2013-08-21T15:00:00.000+02:00"/>
                    <!--- Sonntags von 17 bis 19 Uhr, mit Startdatum, in den drei Wochen in denen das Gegenereignis nicht stattfindet -->
                    <weekly day="SO" priority="0" time-from="17:00:00" time-to="18:59:59" weekFrequency="4" date-from="2013-08-21T15:00:00.000+02:00" invert="true"/>
                    <!--- Jede ungerade Woche Freitags von 17 bis 19 Uhr, mit OddEven (gerade=even, ungerade=odd) -->
                    <weekly day="DO" priority="0" time-from="17:00:00" time-to="18:59:59" weekFrequency="2" oddEvenWeekNbr="odd"/>

                    <!--Senderhytmus monatsbasiert beginnt mit weekOfMonth ...-->
                    <!--- Jede 1. und 4. Woche des Monats am Mittwoch -->
                    <weekOfMonth day="MI" priority="0" time-from="17:00:00" time-to="18:59:59" week1="true" week2="false" week3="false" week4="true" week5="false"/>
                    <!--- Jeden letzten und ersten Dienstag im Monat -->
                    <weekOfMonth day="DI" priority="0" time-from="17:00:00" time-to="18:59:59" lastWeek="true" firstWeek="true"/>

                </transmit-time>
            </transmit-times>

Dokumentation

Vorlagen

Entwicklung

Freie Radios App-Pad https://pads.radiocorax.de/group.html/31/pad.html/g.AipjDinqCZgi0XHu$Freie%20Radio%20App

Diskussion / Dokumentation Kongresse

#zwcm14 Potsdam: http://www.community-media.net/wasgehtapp
#zwcm15 Ulm: http://www.community-media.net/freie-radio-app-2-0
#zwcm 17 Hamburg: http://www.community-media.net/freie-radios-app-das-finale

Weiterführende Literatur

Standards

RRULE http://www.kanzaki.com/docs/ical/rrule.html
XCAL https://de.wikipedia.org/wiki/XCal

Hybrid Digital Radio (DAB, DRM, RadioDNS); XML Specification for Service and Programme Information (SPI)
http://www.etsi.org/deliver/etsi_ts/102800_102899/102818/03.01.01_60/ts_102818v030101p.pdf

RadioDNS https://radiodns.org
https://radiodns.org/developers/documentation/

Apps

FRAPP
Info: https://www.nerdy-birdy.com/work/frapp/
API: http://www.fro.at/fetchprogram.php
API-Doku: http://www.fro.at/frapp/download/DatenanbindungFRApp.pdf

Radioplayer http://www.radioplayer.de
https://cloud.freiesradio-nms.de/index.php/s/9hBrhg6CEWgu2X9