Auteur Topic: Streamripper GUI  (gelezen 5082 keer)

Offline wizjos

  • Administrator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 123
  • -Ontvangen: 181
  • Berichten: 2.006
Streamripper GUI
« Gepost op: 06 juni 2010, 18:59:46 »
Met streamripper kun je via shoutcast uitgezonden internetradio-streams aftappen en opslaan op schijf. Bij toeval stuitte ik op de Duitse thread en de Duitse wiki-pagina hierover.
Een leerzaam geheel en het zette mij aan tot het schrijven van een 3rd-party oplossing: een GUI voor streamripper, gebaseerd op de internetradio-lijsten van AudioStation.

LET OP! IPKG en de IPKG pakketten streamripper en screen moeten geïnstalleerd zijn

Maar toch eerst en vooral een korte uitleg van streamripper en wat er nodig is om er fatsoenlijk mee te kunnen werken...

Streamripper
Zoals al gezegd kun je hiermee internetradio-uitzendingen rippen. Echter, het programma laat zich niet als een 'deamon ' uitvoeren. Als het gestart is zal het de prompt blokkeren totdat het programma afgesloten wordt door de gebruiker of op basis van een instelling (bv. x seconden of y Mb). Zie hier voor de console switches (commando: streamripper -h), een deamon-modus staat er niet bij.
Dat dit niet kan is lastig: je dient voor het rippen dan de console open te laten staan totdat je flauw bent van het rippen en streamripper afsluit (of de console-sessie sluit, hetgeen streamripper ook afbreekt).

Hoe dan te handelen? Op de Duitse wiki zag ik dat men het had over het programma 'screen '. Een programma waarmee je meerde virtuele consoles binnen je sessie kunt starten. Een uitkomst voor dit soort zaken!
En hiermee wordt het ook mogelijk een GUI rond om streamripper te maken, zodat je via de DSM kunt rippen...

Wat kan je met de GUI:

Je kunt er kiezen uit de voorgedefinieerde radiostations zoals die ook in AudioStation zitten (incl. de zelfgedefinieerde stations in AudioStation) De GUI is analoog aan de keuzemogelijkheden in AudioStation, dus per genre/soort en daarbinnen per station.
Van het geselecteerde station worden de gegevens getoond (naam, url en type).
Voorts kun je aangeven waar de streamripper de bestanden moet opslaan: standaard is dit /volume1/public/streamripper... Je bent vrij om zelf een directory te kiezen, zorg echter wel dat dit (i.v.m. de grootte/hoeveelheid van de rip) altijd een directory is onder /volume1!

Ook streamen?
Ja, streamripper kan op zijn beurt ook weer streamen wat hij ontvangt (doorsturen feitelijk). Door middel van het aanvinken van stream in de GUI en het eventueel invullen van een poort waarnaar gestreamd moet worden (niets invullen resulteert in default-poort 8000). Als je dit aanvinkt zal de uitzending dus niet alleen op schijf worden opgeslagen, maar is dan tevens ook te beluisteren via bv. Windows mediaplayer via het adres: intern-ipadres:poortnummer (bv. http://192.168.100.121:8000).
Kan je dus leuk op iedere PC in het netwerk naar muziek luisteren....



Via mijn site kun je de technische achtergronden over de werking lezen en het package downloaden. LET OP! IPKG en de IPKG pakketten streamripper en screen moeten geïnstalleerd zijn

Veel plezier er mee!

Wizjos
Wizjos.


DS409+    4 x WD10EADS DSM 4.2-3243       [TEST]
DS214play 1 x WD20EARX DSM 6.1.4-15217-3  [PROD]
DS1513+   5 x WD80EFZX DSM 6.1.4-15217-5  [PROD]
DS923+    4 x WD80EFPX DSM 7.2.2-72806 Update 2   [PROD]


Is RAID hetzelfde als een backup?
Goeie schijven voor je NAS? Neem Western Digital!

Offline albamatti

  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 0
  • Berichten: 6
Re: Streamripper GUI
« Reactie #1 Gepost op: 14 maart 2015, 12:30:50 »
Dag Wizjos,
Ik heb init 3rd-party geinstalleerd evenals je package Streamrippe.pkg. MariadB en Phpmyadmin draait ook op mijn Synology. Webstation is ingeschakeld. Streamripper is aan te roepen via de command-prompt. IPKG en Screen is ook geïnstalleerd.

Zodra ik je package open zie ik deze tekst.

Ik blijf onderstaande tekens zien:
Wat kan ik nog meer proberen?

Matthijs


$value) { if (strstr($value,"shoutcast") != "") { $bestanden[$teller] = $value; $teller++; } if (strstr($value,"userdef") != "") { $bestanden[$teller] = $value; $teller++; } } ?>
Kies welke zender u wilt horen:
Genre:   $value) { if ($bestand == "" && $teller == 0) { $inhoud = file_get_contents("/usr/syno/etc/audio/radio/".$value); $stations =json_decode($inhoud); $zenders = array(); } $value = str_replace("shoutcast_","",$value); $value = substr($value,0,strpos($value,".")); echo ""; } else { echo ">".$value.""; } $teller++; } if ($_REQUEST['genre'] != "") { $inhoud = file_get_contents("/usr/syno/etc/audio/radio/".$bestanden[$_REQUEST['genre']]); $stations =json_decode($inhoud); $zenders = array(); } ?>

Zender:  stations AS $key => $value) { $zenders[$teller]["bitrate"] = $value->bitrate; $zenders[$teller]["mimetype"] = $value->mimetype; $zenders[$teller]["name"] = $value->name; $zenders[$teller]["url"] = $value->url; echo ""; } else { echo ">".$zenders[$teller]["name"].";"; } $teller++; } ?>
Gegevens gekozen station:
"; echo "URL: ".$zenders[$_REQUEST['zender']]['url']."
"; if (strstr($zenders[$_REQUEST['zender']]['mimetype'],"aac") != "") { echo "Type: AAC+ (".$zenders[$_REQUEST['zender']]['bitrate']." kbps)"; } else { echo "Type: MP3 (".$zenders[$_REQUEST['zender']]['bitrate']." kbps)"; } ?>
Instellingen:
Directory: ">  Stream: >  Poort:
Acties:
"; */ sleep(1); exec("/opt/bin/screen -ls", $test); /* for debug print_r($test); echo "
"; */ if ($test[1] == "") { echo "Zender niet gevonden!"; } else { echo "Zender gevonden...
Bestanden worden opgeslagen in ".$_REQUEST['dir']."
"; if ($_REQUEST['stream'] == "on") echo "Geluid wordt via poort ".$_REQUEST['poort']." verzonden"; } break; case 'stoppen': exec("/opt/etc/init.d/S99streamripper stop"); break; } ?>
  • Mijn Synology: Ds212J
  • HDD's: 2

Offline wizjos

  • Administrator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 123
  • -Ontvangen: 181
  • Berichten: 2.006
Re: Streamripper GUI
« Reactie #2 Gepost op: 14 maart 2015, 16:56:11 »
Ha Matthijs,

Ik ben er even ingedoken, maar ik ben bang dat ik je teleur moet gaan stellen... Ik heb het zelf al geruime tijd niet meer in gebruik, maar e.e.a. ter test toch maar eens geïnstalleerd. Ik kreeg overigens een keurig blanco scherm zonder alle code die jij in beeld hebt.
Dat moet toch echt liggen aan dat jouw Syno in z'n systeem apache nog steeds niets van php begrijpt...
Echter, bij wat verdere naspeuring bleek mij dat inmiddels het hele radio gebeuren op een compleet andere plek staat (en in een ander formaat), dan destijds toen ik het gemaakt heb. Pakketje is daarmee dus legacy geworden. Ik vermoed dat het op een oudere DSM versie nog wel zal werken, maar zonder heftige aanpassingen ben ik bang dat het nooit op de huidige DSM versie zal kunnen gaan werken.
Wellicht heb ik binnenkort wat tijd om er eens naar te kijken, want het zal compleet herschreven moeten worden.

Gr.,

Wizjos
Wizjos.


DS409+    4 x WD10EADS DSM 4.2-3243       [TEST]
DS214play 1 x WD20EARX DSM 6.1.4-15217-3  [PROD]
DS1513+   5 x WD80EFZX DSM 6.1.4-15217-5  [PROD]
DS923+    4 x WD80EFPX DSM 7.2.2-72806 Update 2   [PROD]


Is RAID hetzelfde als een backup?
Goeie schijven voor je NAS? Neem Western Digital!

Offline albamatti

  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 0
  • Berichten: 6
Re: Streamripper GUI
« Reactie #3 Gepost op: 14 maart 2015, 17:02:29 »
Hoi! Dank je wel voor je reactie en de moeite. We sluiten het topic.


Verzonden vanaf mijn iPhone met behulp van Tapatalk
  • Mijn Synology: Ds212J
  • HDD's: 2