# 用樹梅派做bilibili的直播點歌電台
## 前情提要之先建立bilibili 24小時直播音樂
1. 安裝ffmpeg與解碼器
```bash=
git clone https://code.videolan.org/videolan/x264.git
# 原文是git clone videolan.org/x264 但404 no found
cd x264
./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl --disable-asm
# 會跳出make
make
sudo make install
cd ..
rm -rf x264
```

2. 安裝ffmpeg
```bash=
git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
make
sudo make install
cd ..
rm -rf ffmpeg
```
3. 準備要不停循環的影片
我們這邊是拿了youtube裡的音樂歌單來嘗試

轉成mp4下載

將檔案移至pi資料夾裡並且把名字改成了1.mp4

4. 進行推流
先嘗試只播一次是否成功
```bash=
ffmpeg -re -i 1.mp4 -vcodec copy -acodec aac -b:a 192k -f flv http://live.bilibili.com/25172672
```
由於bilibili是中國的影音網站,在2019年後不給海外人士直播所以產生了這些數據,意思是連接失敗

原因:

於是我們打算轉戰到youtube試試看,單次的部分
```bash=
ffmpeg -re -i 1.mp4 -vcodec copy -acodec aac -b:a 192k -f flv rtmp://a.rtmp.youtube.com/live2/串流金鑰
```
金鑰


進行24/7直播
```bash=
sudo nano live.sh
# 裡面內容
#!/bin/bash
while true
do
ffmpeg -re -i 1.mp4 -vcodec copy -acodec aac -b:a 192k -f flv rtmp://a.rtmp.youtube.com/live2/串流金鑰
done
```
4. 安裝screen然後就可以24/7直播了
```bash=
sudo apt-get install screen
screen nohup sh live.sh &
```
## 點歌電台
1. 安裝python需要的東西
```bash=
sudo pip install eyed3
sudo pip install pathlib
```
2. 安裝nginx&php環境
```bash=
sudo apt-get install nginx
# 啟動 nginx
sudo /etc/init.d/nginx start
# 修改文件
sudo nano /etc/nginx/sites-available/default
```
裡面寫入

以及 在index那行再多加index.php

還有location php那裏寫入

安裝php與他的套件
```bash=
# sudo apt-get install php5-fpm php5-sqlite
# php5-fpm php5-sqlite不存在 所以改安裝php-fpm php-sqlite
sudo apt-get install php-fpm php-sqlite3
# 重啟nginx
sudo /etc/init.d/nginx reload
# 如果failed 則 (資料:https://stackoverflow.com/questions/51525710/nginx-failed-to-start-a-high-performance-web-server-and-a-reverse-proxy-server
# sudo lsof -i:80
# sudo fuser -k 80/tcp
# sudo rm /etc/nginx/sites-enabled/default
# sudo service nginx restart
# 保險起見...裝他...
sudo apt-get install php-mysql php-curl php-gd php-intl php-pear php-imagick php-imap php-memcache php-ps php-pspell ph-recode php5-snmp php-tidy php-xmlrpc
```
下載ngrok 進行內網穿透
```bash=
sudo wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip
# 解壓
sudo unzip ngrok-stable-linux-arm.zip
```
去官網取得指令

```bash=
./ngrok authtoken <你的token>
./ngrok tcp 22
# 進入畫面
```
取Forwarding的網址

<可能扯遠了>
https://learningsky.io/access-raspberry-pi-from-outside-network/
建立www並且給予權限
```bash=
cd /usr/share/nginx
mkdir www
sudo nano /usr/share/nginx/www/songlist.txt
#https://gist.github.com/chenxuuu/5e616f84ea2858ba5c941a2149479f20
# 這是他給的code 從網易雲api那裏抓歌下載的樣子
sudo chmod -R 777 /usr/share/nginx/www
```
(to be continued...做不到網頁點歌那個步驟)
前情提要的24小時音樂直播成品:
https://youtu.be/56fAyxFj6vg
網址:
歌單網址:
https://www.youtube.com/watch?v=M0iNKv5IjhY&ab_channel=RelaxingRadio
Referece:
bilibili 24hr 直播電台
https://www.chenxublog.com/2017/06/02/raspi-live-24h-bilibili.html
bilibili 直播點歌電台
https://www.chenxublog.com/2017/11/23/24h-raspberry-live-on-bilibili-reload.html
https://shumeipai.nxez.com/2017/06/11/use-raspberry-pi-to-build-bilibili-vod.html