domenica 23 luglio 2017

Pandora in streaming su Orange Pi

Ho costruito una semplice riproduttore mp3 per mia madre, progettando anche la sua forma e stampando la stessa con la il staglio laser.
Avendo quindi la scatola gia' fatta ho pensato di costruire anche un sistema per me, un po' piu' complicato, ma che potesse consentirmi di sentire tutta la musica che voglio.
Mi sono ricordato che qualche anno fa avevo fatto dei test con Raspberry e Pandora, ed ho ripreso il progettino per calzarlo nella nuova casetta in legno appena progettata.

Partiamo dallo scaricare il sistema operativo necessario per far funzionare il nostro mostriciattolo prelevando il file da qui
Ho scelto questo sistema operativo sviluppato proprio per la Orange Pi, perche' appena lo ho istallato mi e' rimasto subito simpatico per la sua semplicita' di utilizzo per le cose di base che devono essere fatte per mettere su un progettino come questo.

Scaricato e scompattato il file del sistema operativo, e dopo aver preparato la SD formattandola fat32, sono passato alla creazione del disco da linux con:

sudo umount /dev/sdc*    (nel mio caso questo e' il percoso della microSD

sudo dd  if=/tutto_il_percorso_fino_al_file/Armbian_5.30_Orangepizero_Ubuntu_xenial_default_3.4.113.img of=/dev/sdc   (nel mio caso)

Istallata la microSd nella scheda, collegato il cavo di rete al router, .... via al primo accesso

 root   ed  1234  sono utente e password della prima accenzione

La prima volta che viene collegato questo sistema operativo ti costringe a cambiare la password ed a creare un nuovo utente, in maniera del tutto automatica.
Fatte queste operazioni e dato il primo reboot (che servira' al sistema operativo di assestarsi e compiere tutte le operazioni necessarie, come l'espansione del disco fino alla capacita' della scheda Sd scelta ecc..) si puo' finalmente cominciare .

sudo apt update (per aggiornare)

sudo apt upgrade

poi ci solleghiamo via wifi utilizzando il programma di interfaccia predisposto dalla distribuzione:

 sudo nmtui-connect

qui scegliere il proprio router e impostare la password

adesso si naviga anche in wifi!

istalliamo pianobar con
sudo apt-get install pianobar

appena terminato l'iter della istallazione il sistema gia' dovrebbe funzionare, bastera' chiamare  pianobar  e dare le credenziali di accesso al sistema di pandora, che dovete esservi gia' procurate facendo il signup sul sito.

Dall'italia non e' possibile collegarsi direttamente perche' per motivi di copyright, ill servizio e' dispopnibile solo in madrepatria (usa). Noi possiamo ovviare a questa storia di vil denaro! semplicemente modificando il DNS, con linux basta modificare il contenuto del file

 /etc/resolv.conf

inserendo i nuovi numeri di un server DNS che rende libero questo servizio:

Qui il contenuto del file  /etc/resolv.conf   dopo la modifica (oggi funziona ma potrebbero modificare gli indirizzi, mi e' gia' successo nel corso degli anni, vedi il precedente articolo)


# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver  107.170.15.247
nameserver 77.88.8.8
search lan

**************aggiornamento del 22 febbraio 2020

gli indirizzi sopra non funzionano piu', quando oggi ho ripreso la mia creatura per riaccenderla, la brutta notizia : non parte nulla.
Quindi mi sono messo in cerca di una soluzione: eccola

Primary:64.145.73.5
Secondary:209.107.219.5

Il file resolv.conf ad ogni reboot si modifica con le istruzioni che il sistema riceve dal DHCP, quindi questa operazione deve essere fatta tutte le volte che si accede a pianobar perche' si possa essere sicurti che tutto funzioni, io mi sono messo il file in una cartella nella home, ed ho costruito un file bash che ne copia il contenuto nella cartella corretta ad ogni chiamata di pianobar.

Piu' chiaramente ho costruito un file in una cartella chiamata radio

cd
mkdir radio 
vi /home/pi/radio/resolv_pandora.conf

qui ho copiato il contenuto di resolv.conf con i numeri del server DNS corretto

poi ho costruito il file  startpandora.sh

con :

cd
vi startpandora.sh

copiandoci dentro questo:
#!/bin/bash
sudo cp /home/pi/radio/resolv_pandora.conf /etc/resolv.conf 
exec pianobar


in questo modo ogni volta che chiamo ./startpandora.sh il sistema in automatico copia il file nella cartella di sistema sovrascrivendo l'altro creato dal sistema in fase di boot, e poi faccio partire pianobar.

Perche il programma funzioni correttamente si deve costruire un file di configurazione che il pianobar si va a leggere tutte le volte che parte.

cd
mkdir .config
mkdir .config/pianobar
cd .config/pianobar
vi config

Come spiega questa guida, questo e' il contenuto che deve essere copiato dentro config:

# This is an example configuration file for pianobar. You may remove the # from
# lines you need and copy/move this file to ~/.config/pianobar/config
# See manpage for a description of the config keys
#
# User
user = your@user.name
password = password
# or
#password_command = gpg --decrypt ~/password

# Proxy (for those who are not living in the USA)
#control_proxy = http://127.0.0.1:9090/

# Keybindings
act_help = ?
act_songlove = +
act_songban = -
act_stationaddmusic = a
act_stationcreate = c
act_stationdelete = d
act_songexplain = e
act_stationaddbygenre = g
act_songinfo = i
act_addshared = j
act_songmove = m
act_songnext = n
act_songpause = p
act_quit = q
act_stationrename = r
act_stationchange = s
act_songtired = t
act_upcoming = u
act_stationselectquickmix = x
act_voldown = (
act_volup = )

# Misc
#audio_quality = low
autostart_station = 123456
event_command = /home/pi/.config/pianobar/scripts/eventcmd.sh
fifo = /home/pi/.config/pianobar/ctl
#sort = quickmix_10_name_az
#love_icon = [+]
#ban_icon = [-]
#volume = 0

# Format strings
#format_nowplaying_song = [32m%t [0m by [34m%a [0m on %l [31m%r [0m%@%s
#format_nowplaying_station = Station [35m%n [0m
#format_list_song = %i) %a - %t%r

# high-quality audio (192k mp3, for Pandora One subscribers only!)
#audio_quality = high
#rpc_host = internal-tuner.pandora.com
#partner_user = pandora one
#partner_password = TVCKIBGS9AO9TSYLNNFUML0743LH82D
#device = D01
#encrypt_password = 2%3WCL*JU$MP]4
#decrypt_password = U#IO$RZPAB%VX2
tls_fingerprint = B0A1EB460B1B6F33A1B6CB500C6523CB2E6EC946




Naturalmente e' da personalizzare con il proprio account e la propria password di Pandora

Questo file come potete leggere, chiama un file bash eventcmd.sh che gestira' i comandi fisici (i pulsanti che saranno necessari per gestire il sistema )


Prima di tutto va costruito il file dove pianobar andra' a leggere i comandi esterni con il comando:

mkfifo /home/pi/.config/pianobar/ctl

Questo comando crea un file  ( ctl ) dentro cui transiteranno i comandi collegati ai pulsanti della radio  web che stiamo costruendo. Il comando consente a due processi di scambiarsi informazioni, prima uno scrive e poi l'altro legge, e si preoccupa di evitare che un comando non venga letto mettendo in attesa la scrittura del successivo comando fino alla lettura del precedente.

Il progetto originale ha una cartella pubblica su github che contiene i vari script e programmi in python per la gestione dei pulsanti, quindi a questo punto ce lo copiamo suil nostro sistema per prendere quanto necessario :

cd /home/pi/.config/pianobar
git clone git://github.com/AyMac/Pandoras-Box.git

cosi facendo ci siamo costruiti la nostra cartella Pandora-Box dentro pianobar, a noi servono i file contenuti nella cartella script che va copiata dentro pandora




Nessun commento: