Chia sẻ một cách setup Spotify Connect trên RuneAudio

tml3nr

Moderator
Mở đầu, em xin phép nhắc lại một chút về nguyên lý hoạt động của Spotify Connect cho các anh chưa rõ. Với cách này, khi mình chạy Spotify trên một app / software / web browser bất kỳ. Mình sẽ định cho nó xuất âm thanh ra thiết bị đang chạy Spotify Connect. Sau đó server Spotify sẽ chủ động đẩy playlist đang phát đó xuống thẳng Spotify Connect mà không lệ thuộc vào app phát lệnh play. Có nghĩa là sau khi bấm play trên iPad, mình turn off iPad đi thì nhạc vẫn phát ra Spotify Connect bình thường.

Hiện nay có rất nhiều cách để cài Spotify Connect cho Raspbian. Nhưng tiếc là chưa thấy có cách nào cho RuneAudio (Hay Arch Linux). Spotify Connect trên Volumio rất tốt. Nhưng do quá thích Rune nên em ráng mày mò để làm. May mắn là nó hoạt động khá hoàn hảo.

Em viết bài chia sẻ cách làm. Mong là được các anh ủng hộ, test và góp ý để hoàn thiện hơn.

Em tạm gọi cách này là cách PowerPi.de. Vì chủ yếu dựa trên tút của web http://powerpi.de

Để cho dễ thao tác. Mình sẽ dùng Putty và WinSCP.

Trước tiên ta cần phải extend partition cho thẻ nhớ:

Mã:
fdisk /dev/mmcblk0

- Press "p" to show the current partitions and note down the details of the main one that RuneOS is on.
- Delete it, pressing "d" and choosing the relevant partition number.
- Press "n" to make a new partition, and "p" to select a primary partition. Enter the same start block that you wrote down above, and allow it to use the default end block (the last block available on the device).
- Press "w" to write changes and exit.

You may have to reboot after this for changes to be registered. This has resized the partition, but not yet the filesystem.

Next, use the resize2fs command in this way:

resize2fs /dev/mmcblk0p2

Bước 1, putty:

Mã:
curl -O http://spotify-connect-web.s3-website.eu-central-1.amazonaws.com/spotify-connect-web.sh

Bước 2, edit file /root/spotify-connect-web.sh. Remove hết các "sudo ". (Dùng lệnh: nano /root/spotify-connect-web.sh hoặc edit bằng WinSCP). Kết quả sẽ giống như sau:

Mã:
#!/bin/bash
set -e

DIR=~/spotify-connect-web-chroot

if [ "$1" == "install" ]; then
  mkdir -p $DIR
  cd $DIR
  curl http://spotify-connect-web.s3-website.eu-central-1.amazonaws.com/spotify-connect-web.tar.gz | tar xz
else
  trap "umount $DIR/dev $DIR/proc" EXIT
  mount --bind /dev $DIR/dev
  mount -t proc proc $DIR/proc/
  cp /etc/resolv.conf $DIR/etc/
  chroot $DIR /bin/bash -c "cd /usr/src/app && python main.py $*"
fi

Bước 3, putty. Run:

Mã:
chmod +x spotify-connect-web.sh

Mã:
./spotify-connect-web.sh install

Bước 4, WinSCP:

copy file spotify_appkey.key trong file nén bên dưới vào /root/spotify-connect-web-chroot/usr/src/app

copy overwrite file console_callbacks.py trong file nén vào /root/spotify-connect-web-chroot/usr/src/app

Bước 5, putty. Run test: @@@ Cập nhật 07/04/2018:

Mã:
/root/spotify-connect-web.sh --name RuneAudio --device 0 --mixer Digital --username abc --password xyz --bitrate 320

Giá trị của --device và --mixer mình dựa theo alsamixer, như hình bên dưới. User và pass là account thật.

--mixer Analogue hay Digital tùy theo Dac. Nếu là Boss Dac mình chọn Digital.

Khi mình chỉnh volume trong app / web Spotify. Nó kéo theo được volume của Rune!

alsamixer_boss_dac_digital.png


Nếu OK mình sẽ thấy như sau, thời điểm này Spotify Connect đã hoạt động:

Mã:
SpInit: 0
public key: Xwj3zMW9xxxxxxxxxxxxxxxxxxxxxx
device id: 43a952b7-a8cb-xxxxxxxxxxxxxxxxxxxx
remote name: RuneAudio
account req: PREMIUM
device type: AUDIODONGLE
kSpConnectionNotifyLoggedIn
F6hvzT7Hudsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Bước 6: putty. Tạo file service:

Mã:
nano /usr/lib/systemd/system/spotify-connect.service

Chứa nội dung sau:

Mã:
[Unit]
Description=Spotify Connect
After=network.target

[Service]
ExecStart=/usr/bin/sh /root/spotify-connect-web.sh --name RuneAudio --device 0 --mixer Digital --username abc --password xyz --bitrate 320
Restart=always
RestartSec=10
StartLimitInterval=30
StartLimitBurst=20

[Install]
WantedBy=multi-user.target

Bước 7, putty. Set cho service auto start:

Mã:
systemctl enable spotify-connect

Vậy là xong ạ!

PS: Hiện tại em happy với âm thanh và hoạt động của cách này. Nhưng vẫn còn thiếu hiển thị bài hát và hình artwork trên Rune. Hy vọng với sự góp sức của nhiều người. Mình sẽ làm tốt hơn nữa!

Download file spotify_appkey.key và console_callbacks.py:

http://www.mediafire.com/file/yeayukmidqku0j8/spotify_connect_rune_v1.rar

Download RuneAudio 0.4_20170229 + Spotify Connect powerpi.de:

Bản Rune này đã làm xong bước 4. Thẻ 4GB (08/08/2018):

https://www.fshare.vn/file/9IJXSVQRB23W

@@@ Cập nhật 14/04/1018 - Mod cho volume của app Spotify đồng bộ với Rune tốt hơn:

http://www.hdvietnam.com/threads/ch...ct-tren-runeaudio.1389702/page-6#post-9663194

Source tham khảo:

http://powerpi.de/spotify-connect-a...lieren-dein-smartphone-ist-die-fernbedienung/

http://www.runeaudio.com/forum/spotify-connect-autostart-t3315.html

ipad_spotify_connect-png.287797


rune_spotify_connect-png.287761
 
Chỉnh sửa lần cuối:

tml3nr

Moderator
Sáng nay em có test qua âm thanh của Spotify Connect / Rune. So sánh cùng 1 bài với 3 cách sau. Thiết bị gồm có iPad Air 1, Pi2, Rune 0.4-beta_20171120, Boss Dac, iPower.

1. Nhạc down về từ Spotify bằng software Sidify. Lấy về file Flac (để cho âm thanh cao nhất có thể). Phát bằng Rune MPD.

2. iPad play Spotify bằng app. Xuất ra Rune Spotify Connect.

3. iPad play Spotify bằng app. Xuất ra Rune Airplay.

Cách 1 và 2 tiếng gần giống nhau. Cách 2 tiếng chi tiết và nét hơn một ít.

Hơi bất ngờ ở cách 3. Qua AirPlay của Rune tiếng cũng rất tốt. Tiếng đầy và ấm. Độ nét và chi tiết không bằng hai cách trên nhưng nhìn chung rất dễ chịu. Có thể nói khoảng 9/10. (Các anh lưu ý là phát AirPlay âm thanh nhạy cảm với thiết bị phát. Nó khác nhau rất nhiều với những thiết bị khác nhau. Theo em đã test thì dùng iPad phát AirPlay là hay nhất.)
 

linh0983

Well-Known Member
PS: Hiện tại em happy với âm thanh và hoạt động của cách này. Nhưng vẫn còn thiếu hiển thị bài hát và hình artwork trên Rune. Hy vọng với sự góp sức của nhiều người. Mình sẽ làm tốt hơn nữa!
Ko vấn đề gì ! Cũng như Moode và Volumio mình chỉ cần Spotify Connect trong RuneAudio để bắc cầu thôi a . :D
Bác @tml3nr thêm cái hình Spotify Connect ở cuối bài để ae dễ hình dung " SC " nó là cái gì a . :rolleyes::cool:
Ngoài ra ghi chú acc bắt buộc cho dòng này luôn bác .
" ExecStart=/usr/bin/sh /root/spotify-connect-web.sh --name RuneAudio --device 0 --mixer Analogue --username abc --password xyz --bitrate 320 " :rolleyes::(:p
 
Chỉnh sửa lần cuối:

thanhminhppc

Active Member
Mới đăng ký Spotify premium quá ngon, bác có biết account của Spotify dùng được trên bao nhiêu thiết bị ko . Hiện Volumio mình cài Spotify connect Plugin điều khiển bằng App trên iPhone, HEOS 3 mình nhập tài khoản Spotify luôn tự play được ko hay chỉ dùng kiểu Spotify connect nhĩ vì HEOS 3 hỗ trợ cả 2 cách
 

tml3nr

Moderator
Mới đăng ký Spotify premium quá ngon, bác có biết account của Spotify dùng được trên bao nhiêu thiết bị ko . Hiện Volumio mình cài Spotify connect Plugin điều khiển bằng App trên iPhone, HEOS 3 mình nhập tài khoản Spotify luôn tự play được ko hay chỉ dùng kiểu Spotify connect nhĩ vì HEOS 3 hỗ trợ cả 2 cách
Spotify nó quản lý account bằng cách khống chế 1 thời điểm chỉ có 1 thiết bị phát ra âm thanh. Số lượng login vào hình như nó không kiểm soát.

Theo em biết thì Spotify có 2 cách play:

1. Spotify Client: Dùng app hoặc web browser. Có 2 trường hợp xảy ra, là mình có thể browse được album hay là chỉ phát được theo playlist có sẵn.

Spotify Client của Rune là theo cách chỉ phát được theo playlist.

2. Spotify Connect: Là cái em đang nói bên trên:

Với cách này, khi mình chạy Spotify trên một app / software / web browser bất kỳ. Mình sẽ định cho nó xuất âm thanh ra thiết bị đang chạy Spotify Connect. Sau đó server Spotify sẽ chủ động đẩy playlist đang phát đó xuống thẳng Spotify Connect mà không lệ thuộc vào app phát lệnh play. Có nghĩa là sau khi bấm play trên iPad, mình turn off iPad đi thì nhạc vẫn phát ra Spotify Connect bình thường.

Nói nghe lằng nhằng chứ thật ra rất đơn giản. Anh test một lát là hiểu liền.
 
Chỉnh sửa lần cuối:

tml3nr

Moderator
Ko vấn đề gì ! Cũng như Moode và Volumio mình chỉ cần Spotify Connect trong RuneAudio để bắc cầu thôi a . :D
Bác @tml3nr thêm cái hình Spotify Connect ở cuối bài để ae dễ hình dung " SC " nó là cái gì a . :rolleyes::cool:
Ngoài ra ghi chú acc bắt buộc cho dòng này luôn bác .
" ExecStart=/usr/bin/sh /root/spotify-connect-web.sh --name RuneAudio --device 0 --mixer Analogue --username abc --password xyz --bitrate 320 " :rolleyes::(:p
Cách PowerPi.de này mình bắt buộc phải nhập acc vào Rune. Trong khi cách của Volumio không cần nhập user và pass mà Spotifi Connect vẫn nhận tốt o_O
 
Chỉnh sửa lần cuối:

dungsin_lqd

Well-Known Member
Em dùng volumio thấy có sẳn và đâu cần setup gì đâu a? Em nghĩ Rune sẽ không phát triển nữa về lâu dài thì nó sẽ tụt hậu do nhóm phát triển rune sắp tan rã.
 

do_long_khach

Well-Known Member
Em dùng volumio thấy có sẳn và đâu cần setup gì đâu a? Em nghĩ Rune sẽ không phát triển nữa về lâu dài thì nó sẽ tụt hậu do nhóm phát triển rune sắp tan rã.
Cái này tùy sở thích cá nhân thôi bác. Mình hay lang thang trên các forum audio (ko tính các forum/topic riêng cho từng hệ điều hành) của nước ngoài thì thấy người ta dùng volumio và dietpi là chính, sau đó là moode. Rune hầu như ko đc nhắc đến....
 

dungsin_lqd

Well-Known Member
Dietpi mình chưa thử bữa nào cài trải nghiệm thử. Nếu bác rành về dietpi thì cho mình vài link tham khảo. Cảm ơn bác.
 

tml3nr

Moderator
http://dietpi.com/phpbb/viewtopic.php?f=8&t=9
Thôi dừng ở đây kẻo loãng topic .......
Tám thoải mái cho vui để chia sẻ kinh nghiệm các anh ạ. Mình đâu phải họp chi bộ đâu mà kiêng cữ :p

Nếu so sánh giữa Rune, Volumio và moode. Tạm thời bỏ qua yếu tố âm thanh vì cái này thuộc về cảm tính. Em thích Rune nhất vì các việc sau nó hơn hẳn 2 em kia:

- Scan library nhanh. Có thể scan từng folder riêng lẻ.

- Không kén SMB network share. Em dùng Time Capsule, nhiều version của Volumio báo lỗi.

- Quản lý TagID rất dễ chịu. Không bị cảnh 1 album tách ra nhiều album. (Cái này nếu các anh quan tâm em sẽ nói rõ hơn nguyên nhân và cách giải quyết.)

Nhìn về cách hoạt động. Volumio là OS có khả năng phát triển tốt nhất, do họ khéo léo kết hợp kinh doanh để nuôi phần mềm. Em rất muốn theo Volumio cho khỏe thân nhưng qua được vài hôm cũng quay lại máng lợn Rune o_O
 
Chỉnh sửa lần cuối:

linh0983

Well-Known Member
6 dòng lệnh làm mình chết lên chết xuống . Khi đang tải 170M xuống nó báo ko đủ chỗ trống để write là sao vậy bác mình làm gì thêm a . Rune bác dủng ver nào vậy . :eek:
 

tml3nr

Moderator
6 dòng lệnh làm mình chết lên chết xuống . Khi đang tải 170M xuống nó báo ko đủ chỗ trống để write là sao vậy bác mình làm gì thêm a . Rune bác dủng ver nào vậy . :eek:
Sorry anh em quên ghi chú là phải extend partition trước. Em đã thêm trong bài viết o_O

Em dùng bản Rune 0.4-beta_20171120.

Xong cái vụ Rune Connect này . Bác làm topic DietPi Connect cho đủ bộ a .
RUNE , MOODE . VOLUMIO và DIETPI vui là chính mà bác .
Để em thử làm Spotify Connect trên DietPi luôn xem sao :D

Nói về các OS gốc. Trước đây em có thử cài MPD lên các OS Arch Linux, Raspbian... Rồi so sánh âm thanh với Rune, Volumio, moode thì thấy âm thanh khác xa... một trời thương nhớ.

Sau kết quả đó em cho là các OS chuyên Audio họ đã optimize kernel rất ghê gốm :D

Có vài lần em thử các script optimize kernel của Rune thì thấy có quá nhiều thứ mình không hiểu. Và cũng không kiểm soát được kết quả.

@do_long_khach : Anh chia sẻ vài cách optimized DietPi cho em test với ạ.
 

do_long_khach

Well-Known Member
Sorry anh em quên ghi chú là phải extend partition trước. Em đã thêm trong bài viết o_O

Em dùng bản Rune 0.4-beta_20171120.


Để em thử làm Spotify Connect trên DietPi luôn xem sao :D

Nói về các OS gốc. Trước đây em có thử cài MPD lên các OS Arch Linux, Raspbian... Rồi so sánh âm thanh với Rune, Volumio, moode thì thấy âm thanh khác xa... một trời thương nhớ.

Sau kết quả đó em cho là các OS chuyên Audio họ đã optimize kernel rất ghê gốm :D

Có vài lần em thử các script optimize kernel của Rune thì thấy có quá nhiều thứ mình không hiểu. Và cũng không kiểm soát được kết quả.

@do_long_khach : Anh chia sẻ vài cách optimized DietPi cho em test với ạ.
mình vẫn làm là paste đoạn mã giảm xung (có trên hdvn), vào SSH - Dietpi config và Process tool tắt hết mấy thứ usb, bluetooth, hdmi; bật cpu noise reduction, FIFO; tăng nice (chả biết là gì) và priority của chương trình cài trong Dietpi (ví dụ mình dùng Gmediarenderer).........
 
Bên trên