Anonym-tsk / MMM-YouTube

MagicMirror module for youtube player with runtime configuration and controllable by notification.
MIT License
14 stars 4 forks source link

config modulation 방법 #4

Closed DK-J closed 4 years ago

DK-J commented 4 years ago

eouia님의 최신 MMM-Hotword와 AssistantMk2 를 잘 참조하여 매직미러2를 완성하였습니다. 좋은 정보 올려주셔서 감사합니다. google assistant와 calendar 연동도 잘 되고 있습니다.

저의 초기 목적인 google assistant를 사용하여 youtube 혹은 다른 platform을 통해 노래를 들으려하는 목적이 잘 이뤄지지 않아 글을 쓰게 되었습니다.

MMM-Youtube를 사용하기 위해서 wiki에 있는 내용대로

cd ~/MagicMirror/modules git clone https://github.com/eouia/MMM-YouTube

Installation을 하였고,

MagicMirror config.js 파일에 simple version module화를 진행하였습니다. { module : "MMM-Youtube", position: "top_right" },

결과 ---------

"yotube에서 방탄소년단 노래들려줘" 명령어를 실행했을 때, youtube 링크만 화면에 공유되며, 클릭도 되지 않습니다.

현재 log는 no helper found for module: MMM-Youtube. All module helpers loaded. 로 나와있구요

MagicMirror/Module 안에 MMM-Youtube 파일은 잘 설치되어있는 상태입니다.

어디가 문제일까요...?

eouia commented 4 years ago

MMM-AssistantMk2에서, YouTube 링크가 리턴될 때 MMM-YouTube를 구동시키도록 하는 recipe를 사용하시거나, 직접 만드셨나요?

sangwoo-ryu commented 4 years ago

config.js의 MMM-AssistMk2와 MMM-Youtube 모듈을 아래와 같이 설정해주시고 { module: "MMM-AssistantMk2", position: "top_bar", config: { debug: true, ui: "Classic2", recipes: ["with-MMM-Hotword.js", "with-MMM-Youtube.js"], responseConfig: { useScreenOutput: true, }, profiles: { "default": { profileFile: "default.json", lang: "ko-KR" }, }, },

    },

{ module: "MMM-YouTube", position: "fullscreen_above", config: { defaultQuality: "default", showPlayingOnly: true, }

    },

MMM-AssistnatMk2 모듈 내의 recipe에서 with-MMM-Youtube.js를

/ MMM-Youtube commands addon / / modify pattern to your language / / for STOP_YOUTUBE / / @bugsounet /

var recipe = { transcriptionHooks: { "STOP_YOUTUBE": { pattern: "유튜브 정지", command: "STOP_YOUTUBE" }, "EXIT_YOUTUBE": { pattern: "유튜브 종료", command: "EXIT_YOUTUBE" }, "SEARCH_YOUTUBE": { pattern: "유튜브 (.*)", command: "SEARCH_YOUTUBE" } }, responseHooks: { "PLAY_YOUTUBE": { where: "links", pattern: "https:\/\/m.youtube.com\/watch\?v=(.+)$", command: "PLAY_YOUTUBE" }, "PLAYLIST_YOUTUBE": { where: "links", pattern: "https:\/\/m.youtube.com\/playlist\?list=(.+)$", command: "PLAYLIST_YOUTUBE" } },

commands: { "PLAY_YOUTUBE": { moduleExec: { module: "MMM-AssistantMk2", exec: (module, param, from) => { module.sendNotification("YOUTUBE_LOAD", {type: "id", id: param[1]}) } }, soundExec: { chime: "open" } }, "PLAYLIST_YOUTUBE": { moduleExec: { module: "MMM-AssistantMk2", exec: (module, param, from) => { module.sendNotification("YOUTUBE_LOAD", {type: "playlist", listType: "playlist", id: param[1]}) } }, soundExec: { chime: "open" } }, "SEARCH_YOUTUBE": { moduleExec: { module: "MMM-AssistantMk2", exec: (module, param, from) => { module.sendNotification("YOUTUBE_LOAD", {type: "playlist", listType: "search", id: param[1]}) } }, soundExec: { chime: "open" } }, "STOP_YOUTUBE": { moduleExec: { module: "MMM-AssistantMk2", exec: (module, param, from) => { module.sendNotification("YOUTUBE_CONTROL", {command: "pauseVideo"}) } }, soundExec: { chime: "close" } }, "EXIT_YOUTUBE": { moduleExec: { module: "MMM-AssistantMk2", exec: (module, param, from) => { module.sendNotification("YOUTUBE_CONTROL", {command: "stopVideo"}) } }, soundExec: { chime: "close" } }, "MUTE_YOUTUBE": { notificationExec: { notification: "YOUTUBE_CONTROL", payload: () => { return { command: "mute" } } } }, "UNMUTE_YOUTUBE": { notificationExec: { notification: "YOUTUBE_CONTROL", payload: () => { return { command: "unMute" } } } }, }, plugins: { onBeforeActivated: "MUTE_YOUTUBE", onBeforeAudioResponse: "MUTE_YOUTUBE", onAfterAudioResponse: "UNMUTE_YOUTUBE", onAfterInactivated: "UNMUTE_YOUTUBE" } }

exports.recipe = recipe // Don't remove this line.

이렇게 수정하면 "유튜브 방탄소년단"으로 유튜브 플레이가 가능 합니다. 다만 검색결과가 정확하지 않아서 방탄소년단 인터뷰 같은게 나올 수 있어요.

sangwoo-ryu commented 4 years ago

참고로 플레이리스트형식으로 출력되서 정상적으로 종료를 못합니다. (stopVideo 오류로 인해 플레이리스트 전체 종료 방법이 없습니다.)

sangwoo-ryu commented 4 years ago

마우스로 유튜브 플레이어 모듈을 클릭하면 일시정지 마크가 뜨면서 플레이리스트가 종료 되긴하는데 목소리로만 컨트롤 하고자 한다면 방법이 없습니다.

eouia commented 4 years ago

그럼

"yotube에서 방탄소년단 노래들려줘" 명령어를 실행했을 때, youtube 링크만 화면에 공유되며, 클릭도 되지 않습니다.

이 문제는 해결되신 거고,

플레이리스트형식으로 출력되서 정상적으로 종료를 못합니다.(stopVideo 오류로 인해 플레이리스트 전체 종료 방법이 없습니다.)

이거만 해결하시면 되나요? 어차피 종료라는 게 의미가 없어서, stopVideo 대신 pauseVideo 쓰면 되실텐데요.

DK-J commented 4 years ago

MMM-AssistantMk2에서, YouTube 링크가 리턴될 때 MMM-YouTube를 구동시키도록 하는 recipe를 사용하시거나, 직접 만드셨나요?

MMM-AssistantMk2 에서 구동시키는 recipe를 사용하지 않아서 동작을 하지 않았던것 같습니다. eouia님과 아랫분 댓글을 참고하여 유튜브 재생이 가능하네요! 감사합니다.

다른 내용들도 궁금한점이 있으면 물어보겠습니다.