GithubHelp home page GithubHelp logo

muammar / mkchromecast Goto Github PK

View Code? Open in Web Editor NEW
2.2K 48.0 131.0 325.97 MB

Cast macOS and Linux Audio/Video to your Google Cast and Sonos Devices

Home Page: http://mkchromecast.com

License: Other

Makefile 1.37% Python 96.69% Shell 0.32% JavaScript 0.61% Roff 0.81% Rich Text Format 0.21%
macos audio linux video cast-videos alsa chromecast chromecast-audio tray-menu pychromecast

mkchromecast's Introduction

Looking for help!

I don't have too much time recently to take care of the project. If you would be interested in helping, please comment on #398

Mkchromecast

License PyPI - Python Version node Downloads GitHub release

This is a program to cast your macOS audio, or Linux audio to your Google Cast devices or Sonos speakers. It can also cast video files.

It is written for Python3, and it can stream via node.js, parec (Linux), or ffmpeg. Mkchromecast is capable of using lossy and lossless audio formats provided that ffmpeg or parec (Linux) are installed. It also supports Multi-room group playback, and 24-bit/96kHz high audio resolution. Additionally, a system tray menu is available.

By default, Mkchromecast streams with node.js (or parec in Linux) together with mp3 audio coding format at a sample rate of 44100Hz and average bitrate of 192k. These defaults can be changed using the --sample-rate and -b flags. It is useful to modify these parameters when your wireless router is not very powerful, or in the case you don't want to degrade the sound quality. For more information visit the wiki, and the FAQ.

You can optionally install ffmpeg more information here). Linux users also can configure ALSA to capture audio. Note that sometimes the lag between playing a song and hearing may be up to 8 seconds for certain backends.

Tell me more about it

To have an idea of using Mkchromecast from console check this gif.

Mkchromecast provides a beta system tray menu. It requires you to install PyQt5. For more information check the Requirements and Install sections.

This is what the system tray menu looks like:

macOS

Example

Linux

Check these images:

Sonos support

If you have Sonos speakers, you can play whatever you are listening to in your computer with Mkchromecast. To add Sonos support, install the soco python module:

pip3 install soco

Contribute

If you want to contribute, you can help by reporting issues or by creating pull requests with your developments/improvements. If your case is the latter, visit Development section in the Wiki.

Requirements:

macOS

In order to use Mkchromecast you need the following software to stream with node.js:

  • Python3.
  • pychromecast.
  • psutil.
  • mutagen.
  • BlackHole
  • PyQt5 (optional if you want to use the system tray menu).

For more control, you need ffmpeg as backend. In that case install the following:

  • flask (optional).
  • ffmpeg (optional).
  • youtube-dl (option if you plan to cast youtube URLs or supported websites).

Linux

  • Pulseaudio.
  • Pavucontrol.
  • Python3 (if using the official debian package).
  • pychromecast.
  • psutil.
  • mutagen.
  • flask.
  • vorbis-tools.
  • sox.
  • lame.
  • flac.
  • faac.
  • ffmpeg (optional).
  • PyQt5 (optional if you want to use the system tray menu).
  • youtube-dl (option if you plan to cast youtube URLs or supported websites).
  • soco (this module adds Sonos support to Mkchromecast).

For those who don't like Pulseaudio, it is possible to cast using ALSA. In that case the requirements are:

  • alsa-base
  • alsa-utils
  • alsa-utils
  • Python3 (if using the official debian package).
  • pychromecast.
  • psutil.
  • mutagen.
  • flask.
  • vorbis-tools.
  • sox.
  • lame.
  • flac.
  • faac.
  • ffmpeg.
  • PyQt5 (optional if you want to use the system tray menu).
  • youtube-dl (option if you plan to cast youtube URLs or supported websites).
  • soco (this module adds Sonos support to Mkchromecast).

Install

There are two ways of installing this application:

  1. Using the binaries.
  2. From sources.

Binaries

macOS

There is a standalone application for macOS users. You need to drag it to your /Applications/ folder.

Download the latest dmg here. You need also to install BlackHole.

Homebrew Cask

If you are using homebrew, it is possible to install the binary as follows:

brew install --cask mkchromecast

If you find any problem with the application, please report it here.

Linux

Mkchromecast is available in the official Debian repositories. To install it, just do:

apt install mkchromecast

Download the latest deb package here, and install it as follows:

sudo apt -f install ./mkchromecast_$VERSION_all.deb

where $VERSION = X.Y.Z-Rev, e.g.: 0.2.6-1.

This should work in Debian Unstable and Testing. I would appreciate Ubuntu testers as well. If you find any problems, please report it here.

If you experience other problems related to dependencies, please discuss them here or open a new issue.

Additionally, there are two dependency packages for pulling pulseaudio or ALSA dependencies:

apt-get install mkchromecast-alsa (ALSA users)

or

apt-get install mkchromecast-pulseaudio (Pulseaudio users)

From sources

To install Mkchromecast, clone this repository:

git clone https://github.com/muammar/mkchromecast.git --depth 1

Or you may download one of the stable releases here, and unzip the file.

Arch Linux

Mkchromecast is available at the AUR :

#install with aurman
aurman -S mkchromecast
#install with aurutils
aur sync mkchromecast

If you get the error cannot import name 'DependencyWarning' in Arch Linux, please check issue #31.

Python

To install python requirements use the requirements.txt file shipped in this repository:

pip install -r requirements.txt

Note: if this step fails, maybe you need to run the installation with sudo as shown below. However, before installing using this method verify why a regular user cannot install these requirements.

sudo pip install -r requirements.txt

Linux users can try to install these python requirements using the package managers coming with their distributions.

Example for Debian based distros:

sudo apt-get install python3.6 python3-pip python3-pychromecast python3-flask python3-psutil python3-setuptools python3-mutagen python3-gi vorbis-tools sox lame flac faac opus-tools

Note: if python3-pychromecast is not available in your repository, follow instructions in #9.

BlackHole (macOS users only)

For installing BlackHole you can check https://github.com/ExistentialAudio/BlackHole and just download the latest dmg file.

If you have Homebrew you can use brew cask as follows:

brew install --cask blackhole

By default, the sample rate in BlackHole is set to 44100Hz. If you desire to stream at higher sample rates follow the instructions in the wiki.

Note: re-sampling to higher sample rates is not a good idea. It was indeed an issue in chromecast audio devices. See this thread. Therefore, if you want to go beyond 44100Hz you have to capture the sound at a higher sample rate.

ffmpeg

The easiest way of installing ffmpeg is using a package manager, e.g.: brew, macports or fink. Or in the case of Linux, e.g.: apt, yum, or pacman.

macOS

I will briefly describe the case of Homebrew here. First, you will need Homebrew installed in your machine:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Once Homebrew is ready, you can install ffmpeg. As stated in the ffmpeg website, and for being able to use all audio coding formats in Mkchromecast, it is better to install ffmpeg with the following options enabled:

brew install ffmpeg --with-fdk-aac --with-tools --with-freetype --with-libass --with-libvorbis --with-libvpx --with-x265 --with-opus
Linux

As I use Debian, the way of installing ffmpeg is:

apt-get install ffmpeg

Audio coding formats available with parec and ffmpeg backends

Audio coding format Description Notes
mp3 MPEG Audio Layer III (default) Lossy compression format (default bitrate: 192k)
ogg Ogg Vorbis Lossy compression format (default bitrate: 192k)
aac Advanced Audio Coding (AAC) Lossy compression format (default bitrate: 192k)
opus Opus Lossy compression format (default bitrate: 192k)
wav Waveform Audio File Format Lossless format (HQ sound)
flac Free Lossless Audio Codec Lossless format (HQ sound)
PyQt5

These Python bindings are needed if you intend to use the system tray menu. Sometimes pip is able to install PyQt5 andpip install pyqt5 is enough.

If this does not work for you, I suggest you to install it using a package manager.

macOS

Example with Homebrew:

brew install pyqt5 --with-python3
Linux
  • Debian
apt-get install python3-pyqt5

or if you desire it you can do it yourself from the sources.

Updating

To update Mkchromecast sources, just get into the cloned directory and:

git pull

or if you prefer it, you can just pass the --update argument to Mkchromecast:

bin/mkchromecast --update

If you are using the macOS application:

  1. Click on Check For Updates.
  2. If there are new versions, you will be prompted to download the latest dmg.
  3. Replace the mkchromecast.app in your /Applications/ directory.

Linux users need to either perform a apt-get upgrade or download the latest deb here, and dpkg -i mkchromecast_$VERSION_all.deb.

Usage

Audio

Get into the cloned Mkchromecast directory and execute:

bin/mkchromecast

This will launch Mkchromecast using node.js (or parec for Linux users), and will do the streaming part together with the mp3 audio coding format. node.js works decently but the server may tend to fail under certain circumstances. In such a case, Mkchromecast is able to restart the streaming/casting process automatically. So, some hiccups are expected.

Note: most of the steps described herein are the same for macOS and Linux users. However, if you launch the command above in Linux, the process is less automatized. In Linux, you need to select with pavucontrol the sink called Mkchromecast to stream unless you are using ALSA. See the wiki for more information. tl;dr?, just check the gif below.

Example of using mkchromecast

Note: the cast process is independent from the selection of the pulseaudio sink. This means that Mkchromecast will tell the cast device to listen your computer but no sound will be heard until you select the sink. For ALSA users, this does not apply.

Using the ffmpeg backend with Mkchromecast installed from sources

Below an example using mp3:

bin/mkchromecast --encoder-backend ffmpeg

With ffmpeg you can modify the codec:

bin/mkchromecast --encoder-backend ffmpeg -c aac

change the bitrate and sample rate:

bin/mkchromecast --encoder-backend ffmpeg -c mp3 -b 128 --sample-rate 31000

check the section BlackHole (macOS users only) for more about sample rates.

You also can set the host ip manually which is a useful option when having more than one active network connection or when the automatically ip detection fails:

bin/mkchromecast --host 192.168.1.1
Other examples with Mkchromecast installed using the debian package

To cast using parec and wav audio coding format:

mkchromecast -c wav

There is also an option to change the bitrate, and in this case with ffmpeg:

mkchromecast --encoder-backend ffmpeg -c ogg -b 128

and another one to change the sampling rate:

mkchromecast --encoder-backend ffmpeg -c ogg -b 128 --sample-rate 48000
Using Mkchromecast from the system tray

To launch it:

bin/mkchromecast -t

or

mkchromecast -t

The system tray application can perform all the actions from the aforementioned commands. To get an idea, please check the Youtube video here.

Playing Youtube URLs in Google Cast devices

You can play Youtube URLs (or other sites headlessly from the command line:

bin/mkchromecast -y https://www.youtube.com/watch\?v\=NVvAJhZVBT

To use this function, you need to install youtube-dl. In macOS, this can be done with homebrew: brew install youtube-dl. In Debian based distros: apt-get install youtube-dl.

Note: you may need to enclose the URL between quotation marks, and only URLs over https are supported.

Playing source URLs in Google Cast devices

You can play any source URLs headlessly from the command line:

bin/mkchromecast --source-url SOURCE_URL

This option is useful for:

  1. Casting using MPD in the case you have already a http streaming source.
  2. Casting a radio station. A list of stations to try: https://ponyvillefm.com/servers

Example:

bin/mkchromecast --source-url http://192.99.131.205:8000/pvfm1.ogg -c ogg --control

As it can be seen above, the codec has to be specified with the -c flag.

Note: .m3u or .pls are not yet supported.

Controlling the Google Cast's volume and pause/resume options

You can control the volume of your Google Cast device by launching Mkchromecast with the option --control:

bin/mkchromecast --encoder-backend ffmpeg -c ogg -b 320 --control

This will allow you to press u and d keys for volume up and volume down respectively.

The system tray has a window with a volume slider to do volume up and volume down.

High quality audio

Mkchromecast lets you cast using 24-bit/96kHz high audio resolution. This is the maximum chromecast audio capability. The supported codecs are: wav and flac. In spite of the fact that aac can use 96000Hz sample rate, the bitrate corresponds to that of a lossy data compression format. Therefore, the following combinations can achieve this 24-bit/96kHz capability:

  • wav + 96000Hz sample rate.
  • flac + 96000Hz sample rate.

References:

Video

You can now cast videos to your Google cast using Mkchromecast. This feature works both with node and ffmpeg backends and from command line. In the future, they may be a graphical interface for this process. See this project.

  • Cast a file from your computer to your chromecast:
bin/mkchromecast --video -i "/path/to/file.mp4"
bin/mkchromecast --video -i "/path/to/file.mp4" --encoder-backend node

Note: the format of the file can be whatever is supported by ffmpeg and not exclusively mp4.

  • Subtitles
bin/mkchromecast --video -i "/tmp/Homeland.S06E01.Fair.Game.1080p.AMZN.WEBRip.HEVC.DD5.1.x265.mkv" --subtitles /tmp/Homeland.S06E01.Fair\ Game.HDTV.x264-BATV.en.HI.srt
  • Set the resolution
bin/mkchromecast --video --resolution 4k -i /path/to/myvideo.something --subtitles /path/to/my.srt
  • Cast from a source url:
bin/mkchromecast --source-url http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4 -c mp4 --volume --video
  • Youtube Video
bin/mkchromecast -y https://www.youtube.com/watch\?v\=VuMBaAZn3II --video

Killing the application

To kill Mkchromecast when you run it from console, just press Ctrl-C or q key to quit (when --control flag is passed).

When launching from system tray, use the Quit button in the system tray.

More help

To get more help:

bin/mkchromecast -h

or when installing the debian package:

mkchromecast -h

Known issues

General
  • Mkchromecast's versions lower than 0.3.7 cannot operate with newer versions of pychromecast.
  • When casting videos using the node backend, it is not possible to use neither the --subtitle nor the --seek flags.
  • When casting to Sonos the only codecs supported are: mp3, and aac. I won't give wma support. Apparently there is a way to play wav, and ogg that I will try to implement later.
macOS
  • Mkchromecast v0.3.6 cannot connect to selected chromecast when there are more than one available. In that case, you need to use the application from sources or build the application as shown here.
Linux
  • When using parec and lame encoder, the delay between audio played and listened can be up to 8 seconds. I suggest you to use something different than mp3.

You can also check the FAQ for more information.

TODO

  • Verify all exceptions when the system tray menu fails.
  • Sonos: add support to different available flags.
  • Sonos: add Equalizer in the controls.

mkchromecast's People

Contributors

dependabot[bot] avatar dperelman avatar edulix avatar edwardbetts avatar etandel avatar foxboron avatar greisch avatar guigeek208 avatar hairyfotr avatar hamiltont avatar hyproman avatar icarosadero avatar itaranto avatar kawarimidoll avatar leamas avatar maccer1 avatar mathbr avatar miawgogo avatar muammar avatar noelniles avatar piyueh avatar polyzen avatar redkrieg avatar stefanhh0 avatar terencode avatar thejch avatar tirkarthi avatar vincentxavier avatar xsdg avatar zenharbinger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mkchromecast's Issues

reboot cast device action crashes mkchromecast

Every time when I try to click "reboot cast device" from the mkchromecast gui v0.3.7 (actually latest git master as of today, running on mac osx) it seems mkchromecast itself crashes, the system tray icon disappears, and osx tells me mkchromecast crashed unexpectedly.

Steps to reproduce:

  • Start mkchromecast.
  • Search for devices.
  • Click Chromecast Audio device to choose it.
  • Click "reboot cast device".

--> mkchromecast crashes. It's always reproducible, happens every time.

pychromecast is version 0.7.7, QT is 5.8.0, mac osx 10.11.6 El Capitan.

"AttributeError: 'module' object has no attribute 'get_chromecasts_as_dict'" when launching

Hi, I tried to use mkchromecast and I encountered this error:

$ mkchromecast
mkchromecast v0.3.6
Creating pulseaudio sink...
Open pavucontrol and select the mkchromecast sink.
Starting local streaming server
[Done]
Selected backend: parec
Selected audio codec: mp3
Default bitrate used: 192k
Default sample rate used: 44100Hz
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
Traceback (most recent call last):
  File "/usr/bin/mkchromecast", line 60, in <module>
    cc.initialize_cast()
  File "/usr/share/mkchromecast/mkchromecast/cast.py", line 94, in initialize_cast
    self.cclist = list(pychromecast.get_chromecasts_as_dict().keys())
AttributeError: 'module' object has no attribute 'get_chromecasts_as_dict'
$ 

Additional Info

Operating System

Ubuntu 16.04 AMD64

mkchromecast

I installed the following packages from the release page using the gdebi utility

  • mkchromecast_0.3.6-3_all.deb
  • mkchromecast-pulseaudio_0.3.6-3_all.deb

Note that in order to bypass the python-pychromecast missing dependency I crafted and installed a dummy python-pychromecast package using equivs tool then install PyChromecast using sudo pip install pychromecast

PyChromecast (from pip, which appears to be installed under /usr/local/lib/python2.7/dist)

$ pip list | grep PyChromecast
PyChromecast (0.8.0)

Python

$ python --version
Python 2.7.12

Locale

$ locale
LANG=zh_TW.UTF-8
LANGUAGE=zh_TW:zh_HK:zh_CN:en_US:en
LC_CTYPE="zh_TW.UTF-8"
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8
LC_COLLATE="zh_TW.UTF-8"
LC_MONETARY=zh_TW.UTF-8
LC_MESSAGES="zh_TW.UTF-8"
LC_PAPER=zh_TW.UTF-8
LC_NAME=zh_TW.UTF-8
LC_ADDRESS=zh_TW.UTF-8
LC_TELEPHONE=zh_TW.UTF-8
LC_MEASUREMENT=zh_TW.UTF-8
LC_IDENTIFICATION=zh_TW.UTF-8
LC_ALL=

Working Directory

/home/Lin-Buo-Ren

2496 capability

Hi there,

I am new to this site, but wanted to thank you for developing this software. It works well.

I have the Chromecast audio, which can stream at 24 bit 96K resolution. The app goes up to 48 K and does not indicate the bit rate in flac or wav. If the app needs improvement , it is that.

Thank you again

Can't connect to Chromecast Audio

Hi there, I'm using a Macbook Pro running Mac OS 10.12.2 (Sierra) - there is an issue when I try to cast audio sometimes. I have multiple chromecast devices in my home (a chromecast audio, a chromecast and a smart TV). I can cast audio to the TV devices fine (the chromecast and the smart TV) but when I try to cast to the chromecast audio device it invariably connects to two devices at the same time. This then means that I'm unable to hear anything from the chromecast audio. I've taken a screenshot here:

screen shot 2017-01-21 at 12 17 03

Fix Youtube streaming

Now I finally have a CC for my TV, and I realized that the youtube streaming is not working with the trick I had. I need to fix this.

Problems with accentuation

My Chromecast is named with a non-ascii character, so this error occurs:
Traceback (most recent call last):
File "/usr/bin/mkchromecast", line 55, in
cc.initialize_cast()
File "/usr/share/mkchromecast/mkchromecast/cast.py", line 95, in initialize_cast
print(str(self.index)+' ', str(device))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe3' in position 11: ordinal not in range(128)
Could you fix that?

Thanks!

No devices found

Fresh install of lubuntu (16.10 Yakkety). I install mkchromecast 3.6-3. Installed dependencies just to be sure. Runs fine, but always says "No Cast Devices Found" in tray control.

Chrome browser on same machine can find all cast devices, no problem.

Any tips to clear up this problem? (I had this working a while ago on 16.04)

thank you.

I'd be happy to post logs if I knew where they were.

OSX system tray unable to launch

TL;DR

Unable to launch mkchromecast on OSX from either homebrew version or prebuild dmg.

Observed Behavior:

When installing mkhromecast via brew cask install mkchromecast then launching the application, a UI message appears with the following message:

screen shot 2016-07-02 at 7 50 23 pm

Upon inspection of the logs the following errors are reported:

7/2/16 7:22:45.000 PM   kernel[0]   hfs: mounted mkchromecast on device disk2s1
7/2/16 7:22:48.000 PM   kernel[0]   hfs: unmount initiated on mkchromecast on device disk2s1
7/2/16 7:22:58.113 PM   mkchromecast[3434]  �[0m�[04mSelected backend:�[0m node
7/2/16 7:22:58.113 PM   mkchromecast[3434]  �[0m�[04mSelected audio codec:�[0m mp3
7/2/16 7:22:58.181 PM   mkchromecast[3434]  mkchromecast Error
7/2/16 7:22:58.181 PM   mkchromecast[3434]  2016-07-02 19:22:58.181 mkchromecast[3434:23970] mkchromecast Error
7/2/16 7:23:00.407 PM   mkchromecast[3434]  Traceback (most recent call last):
7/2/16 7:23:00.407 PM   mkchromecast[3434]    File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 351, in <module>
7/2/16 7:23:00.407 PM   mkchromecast[3434]      _run()
7/2/16 7:23:00.407 PM   mkchromecast[3434]    File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 336, in _run
7/2/16 7:23:00.407 PM   mkchromecast[3434]      exec(compile(source, path, 'exec'), globals(), globals())
7/2/16 7:23:00.407 PM   mkchromecast[3434]    File "/Applications/mkchromecast.app/Contents/Resources/start_tray.py", line 14, in <module>
7/2/16 7:23:00.407 PM   mkchromecast[3434]      mkchromecast.systray.main()
7/2/16 7:23:00.407 PM   mkchromecast[3434]    File "mkchromecast/systray.pyc", line 623, in main
7/2/16 7:23:00.407 PM   mkchromecast[3434]    File "mkchromecast/systray.pyc", line 38, in __init__
7/2/16 7:23:00.407 PM   mkchromecast[3434]    File "mkchromecast/cast.pyc", line 41, in __init__
7/2/16 7:23:00.407 PM   mkchromecast[3434]  socket.gaierror: [Errno 8] nodename nor servname provided, or not known
7/2/16 7:23:18.062 PM   mkchromecast[3451]  �[0m�[04mSelected backend:�[0m node
7/2/16 7:23:18.062 PM   mkchromecast[3451]  �[0m�[04mSelected audio codec:�[0m mp3
7/2/16 7:23:18.132 PM   mkchromecast[3451]  mkchromecast Error
7/2/16 7:23:18.133 PM   mkchromecast[3451]  2016-07-02 19:23:18.132 mkchromecast[3451:24270] mkchromecast Error
7/2/16 7:23:19.841 PM   mkchromecast[3451]  Traceback (most recent call last):
7/2/16 7:23:19.842 PM   mkchromecast[3451]    File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 351, in <module>
7/2/16 7:23:19.842 PM   mkchromecast[3451]      _run()
7/2/16 7:23:19.842 PM   mkchromecast[3451]    File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 336, in _run
7/2/16 7:23:19.842 PM   mkchromecast[3451]      exec(compile(source, path, 'exec'), globals(), globals())
7/2/16 7:23:19.842 PM   mkchromecast[3451]    File "/Applications/mkchromecast.app/Contents/Resources/start_tray.py", line 14, in <module>
7/2/16 7:23:19.842 PM   mkchromecast[3451]      mkchromecast.systray.main()
7/2/16 7:23:19.842 PM   mkchromecast[3451]    File "mkchromecast/systray.pyc", line 623, in main
7/2/16 7:23:19.842 PM   mkchromecast[3451]    File "mkchromecast/systray.pyc", line 38, in __init__
7/2/16 7:23:19.842 PM   mkchromecast[3451]    File "mkchromecast/cast.pyc", line 41, in __init__
7/2/16 7:23:19.842 PM   mkchromecast[3451]  socket.gaierror: [Errno 8] nodename nor servname provided, or not known
7/2/16 7:24:39.000 PM   kernel[0]   hfs: mounted mkchromecast on device disk2s1
7/2/16 7:24:39.111 PM   mds[68] (Volume.Normal:2464) volume:0x7f99c789fe00 ********** Bootstrapped Creating a default store:1 SpotLoc:(null) SpotVerLoc:(null) occlude:0 /Volumes/mkchromecast
7/2/16 7:25:03.777 PM   com.apple.xpc.launchd[1]    (com.apple.xpc.launchd.oneshot.0x10000009.mkchromecast[3637]) Service exited due to signal: Killed: 9
7/2/16 7:25:21.937 PM   com.apple.xpc.launchd[1]    (com.apple.xpc.launchd.oneshot.0x1000000a.mkchromecast[3652]) Service exited due to signal: Killed: 9
7/2/16 7:25:40.800 PM   launchservicesd[86] Someone attempted to start application App:"mkchromecast" asn:0x0-77077 pid:3667 refs=6 @ 0x7f8e2a470090 but it still has _kLSApplicationLockedInStoppedStateKey=true, so it is is staying stopped. : LASApplication.cp #2661 SetApplicationInStoppedState() q=LSSession 100007/0x186a7 queue
7/2/16 7:25:44.000 PM   com.apple.xpc.launchd[1]    (com.apple.xpc.launchd.oneshot.0x1000000b.mkchromecast[3667]) Service exited due to signal: Killed: 9
7/2/16 7:25:53.829 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/Python.framework/Python
7/2/16 7:25:53.829 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/Python.framework/Resources
7/2/16 7:25:53.830 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/Python.framework/Versions/Current
7/2/16 7:25:53.831 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/Qt3DCore.framework/Qt3DCore
7/2/16 7:25:53.831 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/Qt3DCore.framework/Resources
7/2/16 7:25:53.831 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/Qt3DCore.framework/Versions/Current
7/2/16 7:25:53.832 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/Qt3DRender.framework/Qt3DRender
7/2/16 7:25:53.832 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/Qt3DRender.framework/Resources
7/2/16 7:25:53.832 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/Qt3DRender.framework/Versions/Current
7/2/16 7:25:53.832 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtConcurrent.framework/QtConcurrent
7/2/16 7:25:53.833 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtConcurrent.framework/Resources
7/2/16 7:25:53.833 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtConcurrent.framework/Versions/Current
7/2/16 7:25:53.833 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtCore.framework/QtCore
7/2/16 7:25:53.834 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtCore.framework/Resources
7/2/16 7:25:53.834 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtCore.framework/Versions/Current
7/2/16 7:25:53.834 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtDesigner.framework/QtDesigner
7/2/16 7:25:53.834 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtDesigner.framework/Resources
7/2/16 7:25:53.835 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtDesigner.framework/Versions/Current
7/2/16 7:25:53.835 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtGui.framework/QtGui
7/2/16 7:25:53.835 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtGui.framework/Resources
7/2/16 7:25:53.835 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtGui.framework/Versions/Current
7/2/16 7:25:53.836 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtLocation.framework/QtLocation
7/2/16 7:25:53.836 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtLocation.framework/Resources
7/2/16 7:25:53.836 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtLocation.framework/Versions/Current
7/2/16 7:25:53.836 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtMultimedia.framework/QtMultimedia
7/2/16 7:25:53.836 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtMultimedia.framework/Resources
7/2/16 7:25:53.837 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtMultimedia.framework/Versions/Current
7/2/16 7:25:53.837 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtMultimediaWidgets.framework/QtMultimediaWidgets
7/2/16 7:25:53.837 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtMultimediaWidgets.framework/Resources
7/2/16 7:25:53.838 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtMultimediaWidgets.framework/Versions/Current
7/2/16 7:25:53.838 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtNetwork.framework/QtNetwork
7/2/16 7:25:53.838 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtNetwork.framework/Resources
7/2/16 7:25:53.838 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtNetwork.framework/Versions/Current
7/2/16 7:25:53.839 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtOpenGL.framework/QtOpenGL
7/2/16 7:25:53.839 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtOpenGL.framework/Resources
7/2/16 7:25:53.839 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtOpenGL.framework/Versions/Current
7/2/16 7:25:53.839 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtPositioning.framework/QtPositioning
7/2/16 7:25:53.839 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtPositioning.framework/Resources
7/2/16 7:25:53.840 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtPositioning.framework/Versions/Current
7/2/16 7:25:53.840 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtPrintSupport.framework/QtPrintSupport
7/2/16 7:25:53.840 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtPrintSupport.framework/Resources
7/2/16 7:25:53.840 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtPrintSupport.framework/Versions/Current
7/2/16 7:25:53.840 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtQml.framework/QtQml
7/2/16 7:25:53.841 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtQml.framework/Resources
7/2/16 7:25:53.841 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtQml.framework/Versions/Current
7/2/16 7:25:53.841 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtQuick.framework/QtQuick
7/2/16 7:25:53.841 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtQuick.framework/Resources
7/2/16 7:25:53.842 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtQuick.framework/Versions/Current
7/2/16 7:25:53.842 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtQuickWidgets.framework/QtQuickWidgets
7/2/16 7:25:53.842 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtQuickWidgets.framework/Resources
7/2/16 7:25:53.842 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtQuickWidgets.framework/Versions/Current
7/2/16 7:25:53.842 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSensors.framework/QtSensors
7/2/16 7:25:53.843 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSensors.framework/Resources
7/2/16 7:25:53.843 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSensors.framework/Versions/Current
7/2/16 7:25:53.843 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSerialBus.framework/QtSerialBus
7/2/16 7:25:53.843 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSerialBus.framework/Resources
7/2/16 7:25:53.843 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSerialBus.framework/Versions/Current
7/2/16 7:25:53.844 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSerialPort.framework/QtSerialPort
7/2/16 7:25:53.844 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSerialPort.framework/Resources
7/2/16 7:25:53.844 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSerialPort.framework/Versions/Current
7/2/16 7:25:53.844 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSql.framework/QtSql
7/2/16 7:25:53.844 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSql.framework/Resources
7/2/16 7:25:53.845 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSql.framework/Versions/Current
7/2/16 7:25:53.845 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSvg.framework/QtSvg
7/2/16 7:25:53.845 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSvg.framework/Resources
7/2/16 7:25:53.845 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtSvg.framework/Versions/Current
7/2/16 7:25:53.845 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtWidgets.framework/QtWidgets
7/2/16 7:25:53.846 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtWidgets.framework/Resources
7/2/16 7:25:53.846 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtWidgets.framework/Versions/Current
7/2/16 7:25:53.846 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtXml.framework/QtXml
7/2/16 7:25:53.846 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtXml.framework/Resources
7/2/16 7:25:53.847 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Frameworks/QtXml.framework/Versions/Current
7/2/16 7:25:53.864 PM   CoreServicesUIAgent[344]    error -1 while removing quarantine data on path /Applications/mkchromecast.app/Contents/Resources/lib/python3.5/site.pyc
7/2/16 7:25:56.933 PM   mkchromecast[3675]  �[0m�[04mSelected backend:�[0m node
7/2/16 7:25:56.934 PM   mkchromecast[3675]  �[0m�[04mSelected audio codec:�[0m mp3
7/2/16 7:25:57.005 PM   mkchromecast[3675]  mkchromecast Error
7/2/16 7:25:57.006 PM   mkchromecast[3675]  2016-07-02 19:25:57.005 mkchromecast[3675:27404] mkchromecast Error
7/2/16 7:25:58.981 PM   mkchromecast[3675]  Traceback (most recent call last):
7/2/16 7:25:58.982 PM   mkchromecast[3675]    File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 351, in <module>
7/2/16 7:25:58.982 PM   mkchromecast[3675]      _run()
7/2/16 7:25:58.982 PM   mkchromecast[3675]    File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 336, in _run
7/2/16 7:25:58.982 PM   mkchromecast[3675]      exec(compile(source, path, 'exec'), globals(), globals())
7/2/16 7:25:58.982 PM   mkchromecast[3675]    File "/Applications/mkchromecast.app/Contents/Resources/start_tray.py", line 14, in <module>
7/2/16 7:25:58.982 PM   mkchromecast[3675]      mkchromecast.systray.main()
7/2/16 7:25:58.982 PM   mkchromecast[3675]    File "mkchromecast/systray.pyc", line 623, in main
7/2/16 7:25:58.982 PM   mkchromecast[3675]    File "mkchromecast/systray.pyc", line 38, in __init__
7/2/16 7:25:58.982 PM   mkchromecast[3675]    File "mkchromecast/cast.pyc", line 41, in __init__
7/2/16 7:25:58.982 PM   mkchromecast[3675]  socket.gaierror: [Errno 8] nodename nor servname provided, or not known
7/2/16 7:34:11.915 PM   mkchromecast[17569] �[0m�[04mSelected backend:�[0m node
7/2/16 7:34:11.915 PM   mkchromecast[17569] �[0m�[04mSelected audio codec:�[0m mp3
7/2/16 7:34:11.983 PM   mkchromecast[17569] mkchromecast Error
7/2/16 7:34:11.983 PM   mkchromecast[17569] 2016-07-02 19:34:11.983 mkchromecast[17569:63478] mkchromecast Error
7/2/16 7:34:14.350 PM   mkchromecast[17569] Traceback (most recent call last):
7/2/16 7:34:14.351 PM   mkchromecast[17569]   File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 351, in <module>
7/2/16 7:34:14.351 PM   mkchromecast[17569]     _run()
7/2/16 7:34:14.351 PM   mkchromecast[17569]   File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 336, in _run
7/2/16 7:34:14.351 PM   mkchromecast[17569]     exec(compile(source, path, 'exec'), globals(), globals())
7/2/16 7:34:14.351 PM   mkchromecast[17569]   File "/Applications/mkchromecast.app/Contents/Resources/start_tray.py", line 14, in <module>
7/2/16 7:34:14.351 PM   mkchromecast[17569]     mkchromecast.systray.main()
7/2/16 7:34:14.351 PM   mkchromecast[17569]   File "mkchromecast/systray.pyc", line 623, in main
7/2/16 7:34:14.351 PM   mkchromecast[17569]   File "mkchromecast/systray.pyc", line 38, in __init__
7/2/16 7:34:14.351 PM   mkchromecast[17569]   File "mkchromecast/cast.pyc", line 41, in __init__
7/2/16 7:34:14.351 PM   mkchromecast[17569] socket.gaierror: [Errno 8] nodename nor servname provided, or not known
7/2/16 7:43:05.702 PM   mkchromecast[31598] �[0m�[04mSelected backend:�[0m node
7/2/16 7:43:05.702 PM   mkchromecast[31598] �[0m�[04mSelected audio codec:�[0m mp3
7/2/16 7:43:05.771 PM   mkchromecast[31598] mkchromecast Error
7/2/16 7:43:05.771 PM   mkchromecast[31598] 2016-07-02 19:43:05.770 mkchromecast[31598:83458] mkchromecast Error
7/2/16 7:43:07.359 PM   mkchromecast[31598] Traceback (most recent call last):
7/2/16 7:43:07.359 PM   mkchromecast[31598]   File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 351, in <module>
7/2/16 7:43:07.359 PM   mkchromecast[31598]     _run()
7/2/16 7:43:07.359 PM   mkchromecast[31598]   File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 336, in _run
7/2/16 7:43:07.359 PM   mkchromecast[31598]     exec(compile(source, path, 'exec'), globals(), globals())
7/2/16 7:43:07.360 PM   mkchromecast[31598]   File "/Applications/mkchromecast.app/Contents/Resources/start_tray.py", line 14, in <module>
7/2/16 7:43:07.360 PM   mkchromecast[31598]     mkchromecast.systray.main()
7/2/16 7:43:07.360 PM   mkchromecast[31598]   File "mkchromecast/systray.pyc", line 623, in main
7/2/16 7:43:07.360 PM   mkchromecast[31598]   File "mkchromecast/systray.pyc", line 38, in __init__
7/2/16 7:43:07.360 PM   mkchromecast[31598]   File "mkchromecast/cast.pyc", line 41, in __init__
7/2/16 7:43:07.360 PM   mkchromecast[31598] socket.gaierror: [Errno 8] nodename nor servname provided, or not known
7/2/16 7:44:24.000 PM   kernel[0]   hfs: mounted mkchromecast on device disk3s1
7/2/16 7:44:28.000 PM   kernel[0]   hfs: unmount initiated on mkchromecast on device disk3s1
7/2/16 7:44:53.362 PM   mkchromecast[31840] �[0m�[04mSelected backend:�[0m node
7/2/16 7:44:53.362 PM   mkchromecast[31840] �[0m�[04mSelected audio codec:�[0m mp3
7/2/16 7:44:53.431 PM   mkchromecast[31840] mkchromecast Error
7/2/16 7:44:53.431 PM   mkchromecast[31840] 2016-07-02 19:44:53.430 mkchromecast[31840:85259] mkchromecast Error
7/2/16 7:44:55.130 PM   mkchromecast[31840] Traceback (most recent call last):
7/2/16 7:44:55.130 PM   mkchromecast[31840]   File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 351, in <module>
7/2/16 7:44:55.130 PM   mkchromecast[31840]     _run()
7/2/16 7:44:55.130 PM   mkchromecast[31840]   File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 336, in _run
7/2/16 7:44:55.130 PM   mkchromecast[31840]     exec(compile(source, path, 'exec'), globals(), globals())
7/2/16 7:44:55.130 PM   mkchromecast[31840]   File "/Applications/mkchromecast.app/Contents/Resources/start_tray.py", line 14, in <module>
7/2/16 7:44:55.130 PM   mkchromecast[31840]     mkchromecast.systray.main()
7/2/16 7:44:55.130 PM   mkchromecast[31840]   File "mkchromecast/systray.pyc", line 623, in main
7/2/16 7:44:55.130 PM   mkchromecast[31840]   File "mkchromecast/systray.pyc", line 38, in __init__
7/2/16 7:44:55.130 PM   mkchromecast[31840]   File "mkchromecast/cast.pyc", line 41, in __init__
7/2/16 7:44:55.130 PM   mkchromecast[31840] socket.gaierror: [Errno 8] nodename nor servname provided, or not known
7/2/16 7:45:53.696 PM   systemkeychain[154] done file: /var/run/systemkeychaincheck.done
7/2/16 7:45:55.037 PM   digest-service[201]     mkey_file: /var/db/krb5kdc/m-key
7/2/16 7:46:07.389 PM   mkchromecast[460]   �[0m�[04mSelected backend:�[0m node
7/2/16 7:46:07.389 PM   mkchromecast[460]   �[0m�[04mSelected audio codec:�[0m mp3
7/2/16 7:46:07.459 PM   mkchromecast[460]   mkchromecast Error
7/2/16 7:46:07.459 PM   mkchromecast[460]   2016-07-02 19:46:07.458 mkchromecast[460:3388] mkchromecast Error
7/2/16 7:46:10.303 PM   mkchromecast[460]   Traceback (most recent call last):
7/2/16 7:46:10.303 PM   mkchromecast[460]     File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 351, in <module>
7/2/16 7:46:10.303 PM   mkchromecast[460]       _run()
7/2/16 7:46:10.303 PM   mkchromecast[460]     File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 336, in _run
7/2/16 7:46:10.303 PM   mkchromecast[460]       exec(compile(source, path, 'exec'), globals(), globals())
7/2/16 7:46:10.303 PM   mkchromecast[460]     File "/Applications/mkchromecast.app/Contents/Resources/start_tray.py", line 14, in <module>
7/2/16 7:46:10.303 PM   mkchromecast[460]       mkchromecast.systray.main()
7/2/16 7:46:10.303 PM   mkchromecast[460]     File "mkchromecast/systray.pyc", line 623, in main
7/2/16 7:46:10.303 PM   mkchromecast[460]     File "mkchromecast/systray.pyc", line 38, in __init__
7/2/16 7:46:10.303 PM   mkchromecast[460]     File "mkchromecast/cast.pyc", line 41, in __init__
7/2/16 7:46:10.303 PM   mkchromecast[460]   socket.gaierror: [Errno 8] nodename nor servname provided, or not known
7/2/16 7:46:57.948 PM   mkchromecast[756]   �[0m�[04mSelected backend:�[0m node
7/2/16 7:46:57.948 PM   mkchromecast[756]   �[0m�[04mSelected audio codec:�[0m mp3
7/2/16 7:46:58.017 PM   mkchromecast[756]   mkchromecast Error
7/2/16 7:46:58.017 PM   mkchromecast[756]   2016-07-02 19:46:58.016 mkchromecast[756:7367] mkchromecast Error
7/2/16 7:47:01.568 PM   mkchromecast[756]   Traceback (most recent call last):
7/2/16 7:47:01.568 PM   mkchromecast[756]     File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 351, in <module>
7/2/16 7:47:01.568 PM   mkchromecast[756]       _run()
7/2/16 7:47:01.568 PM   mkchromecast[756]     File "/Applications/mkchromecast.app/Contents/Resources/__boot__.py", line 336, in _run
7/2/16 7:47:01.568 PM   mkchromecast[756]       exec(compile(source, path, 'exec'), globals(), globals())
7/2/16 7:47:01.568 PM   mkchromecast[756]     File "/Applications/mkchromecast.app/Contents/Resources/start_tray.py", line 14, in <module>
7/2/16 7:47:01.568 PM   mkchromecast[756]       mkchromecast.systray.main()
7/2/16 7:47:01.568 PM   mkchromecast[756]     File "mkchromecast/systray.pyc", line 623, in main
7/2/16 7:47:01.568 PM   mkchromecast[756]     File "mkchromecast/systray.pyc", line 38, in __init__
7/2/16 7:47:01.568 PM   mkchromecast[756]     File "mkchromecast/cast.pyc", line 41, in __init__
7/2/16 7:47:01.568 PM   mkchromecast[756]   socket.gaierror: [Errno 8] nodename nor servname provided, or not known

System Details

ProductName:    Mac OS X
ProductVersion: 10.11.5
BuildVersion:   15F34

py2app giving abort trap 6

It is not being possible to create a macOS app this time. Maybe it is a good time to switch from py2app to pyinstaller?. This bug is holding back the release.

parec backend problem Ubuntu 16.04

Hi, thanks for mkchromecast. Its a great little application.
I followed your instructions for my linux os and everything installed fine

Everything seems to run ok too however I found I had a problem using the default 'parec'
back end. everything works like a charm if I use "ffmpeg".
I'm still trying to work why. Can you offer any suggestions on debugging mkchromecast while using the parec backend.

Peter

MultipleChromecastsFoundError

Reported in Google + and causing problem for owners with more than one cast device:

Traceback (most recent call last):
  File "/usr/bin/mkchromecast", line 68, in <module>
    cc.get_cc()
  File "/usr/share/mkchromecast/mkchromecast/cast.py", line 213, in get_cc
    self.cast = pychromecast.get_chromecast(self.castto)
  File "/usr/lib/python2.7/dist-packages/pychromecast/__init__.py", line 168, in get_chromecast
    'the filter criteria: {}'.format(filters))
pychromecast.error.MultipleChromecastsFoundError: More than one Chromecast was found specifying the filter criteria: {}

ffmpeg playback not working on MacOS

i installed from your mac .dmg image, latest version 0.3.6, and in node, playback seems to be working (up to 320kbps, in mp3 - 500kbps mp3 not working either by the way), but if i select ffmpeg (and yes, i have installed full package with options as you described, via brew), MKCHROMECAST is not working, regardless of settings, mp3, flac, wav, anything - just no sound at all. what could be wrong ?

PS - i am using MacOS Sierra

Can't set desired bitrate for ogg via cmdl defaults to 500k

I use mkchromecast with alsa but it seems it cannot set bitrate for ogg and always defaults to 500k max bitrate no matter what it's given. Also, the latency is much higher than 4s.

Does the cast device use the same settings and sample rate for playback?

Thanks in advance for your help, and btw good job!

macOS Sierra cannot find any cast devices

After installing mkchromecast via brew, the application continuously searches and cannot find any cast devices. However, it's worth noting that this did work the very first time I used it.

After installing the application from source and running python mkchromecast.py, the following error shows up: No handlers could be found for logger "pychromecast.socket_client".

Any insight on what the issue might be or what I should do to further debug?

Settings for shortest sound delay

mkchromecast is terrific. I note that in the Known Issues section you mention that the delay can be up to 8 seconds using mp3. I wanted to ask if there was some combination of settings (i.e., backend, format, and sample rate), that would reduce the delay to the shortest amount of time possible?

My delay right now is about 3 seconds using avconf, wav, and 192000. But I thought it might be helpful, to me and other users, to know what settings serve to reduce the delay. Thanks.

Connects to Chromecast device but does not send audio

Yes, I did turn it on in puvacontrol.
Ubuntu 16.04 LTS

mkchromecast v0.3.4

ay_name=None, namespaces=[], session_id=None, transport_id=None, status_text='')

The IP of SHIELD is: 192.168.1.112
Your local IP is: 192.168.1.236

The media type string used is: audio/mpeg

Cast media controller status

CastStatus(is_active_input=True, is_stand_by=False, volume_level=1.0, volume_muted=False, app_id=u'CC1AD845', display_name=u'Default Media Receiver', namespaces=[u'urn:x-cast:com.google.cast.media', u'urn:x-cast:com.google.cast.inject'], session_id=u'8A22722C-03B3-487C-B840-39E68477221A', transport_id=u'mediashell-1', status_text=u'Ready To Cast')

Remember to open pavucontrol and select the mkchromecast sink.

Ctrl-C to kill the application at any time

192.168.1.112 - - [20/Aug/2016 13:36:13] "GET /stream HTTP/1.1" 200 -
----------------------------------------
Exception happened during processing of request from ('192.168.1.112', 42274)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.7/SocketServer.py", line 654, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 713, in finish
    self.wfile.close()
  File "/usr/lib/python2.7/socket.py", line 283, in close
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 307, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
192.168.1.112 - - [20/Aug/2016 13:36:13] "GET /stream HTTP/1.1" 200 -

Ubuntu install

Hi - I'm trying to get this working following the instructions here: http://www.omgubuntu.co.uk/2016/08/cast-ubuntu-desktop-audio-chromecast - and from your website/ guthub

I've followed the instructions, but when I run mkchromecast from the command line I receive these errors..

max@mythos:~/Desktop$ mkchromecast
Traceback (most recent call last):
  File "/usr/bin/mkchromecast", line 8, in <module>
    from mkchromecast.cast import *
  File "/usr/share/mkchromecast/mkchromecast/cast.py", line 13, in <module>
    import pychromecast
  File "/usr/lib/python2.7/dist-packages/pychromecast/__init__.py", line 14, in <module>
    from . import socket_client
  File "/usr/lib/python2.7/dist-packages/pychromecast/socket_client.py", line 22, in <module>
    from . import cast_channel_pb2
  File "/usr/lib/python2.7/dist-packages/pychromecast/cast_channel_pb2.py", line 23, in <module>
    serialized_pb=_b('\n\x12\x63\x61st_channel.proto\x12 extensions.core_api.cast_channel\"\xed\x02\n\x0b\x43\x61stMessage\x12W\n\x10protocol_version\x18\x01 \x02(\x0e\x32=.extensions.core_api.cast_channel.CastMessage.ProtocolVersion\x12\x11\n\tsource_id\x18\x02 \x02(\t\x12\x16\n\x0e\x64\x65stination_id\x18\x03 \x02(\t\x12\x11\n\tnamespace\x18\x04 \x02(\t\x12O\n\x0cpayload_type\x18\x05 \x02(\x0e\x32\x39.extensions.core_api.cast_channel.CastMessage.PayloadType\x12\x14\n\x0cpayload_utf8\x18\x06 \x01(\t\x12\x16\n\x0epayload_binary\x18\x07 \x01(\x0c\"!\n\x0fProtocolVersion\x12\x0e\n\nCASTV2_1_0\x10\x00\"%\n\x0bPayloadType\x12\n\n\x06STRING\x10\x00\x12\n\n\x06\x42INARY\x10\x01\"s\n\rAuthChallenge\x12\x62\n\x13signature_algorithm\x18\x01 \x01(\x0e\x32\x34.extensions.core_api.cast_channel.SignatureAlgorithm:\x0fRSASSA_PKCS1v15\"\xc8\x01\n\x0c\x41uthResponse\x12\x11\n\tsignature\x18\x01 \x02(\x0c\x12\x1f\n\x17\x63lient_auth_certificate\x18\x02 \x02(\x0c\x12 \n\x18intermediate_certificate\x18\x03 \x03(\x0c\x12\x62\n\x13signature_algorithm\x18\x04 \x01(\x0e\x32\x34.extensions.core_api.cast_channel.SignatureAlgorithm:\x0fRSASSA_PKCS1v15\"\xa8\x01\n\tAuthError\x12I\n\nerror_type\x18\x01 \x02(\x0e\x32\x35.extensions.core_api.cast_channel.AuthError.ErrorType\"P\n\tErrorType\x12\x12\n\x0eINTERNAL_ERROR\x10\x00\x12\n\n\x06NO_TLS\x10\x01\x12#\n\x1fSIGNATURE_ALGORITHM_UNAVAILABLE\x10\x02\"\xd5\x01\n\x11\x44\x65viceAuthMessage\x12\x42\n\tchallenge\x18\x01 \x01(\x0b\x32/.extensions.core_api.cast_channel.AuthChallenge\x12@\n\x08response\x18\x02 \x01(\x0b\x32..extensions.core_api.cast_channel.AuthResponse\x12:\n\x05\x65rror\x18\x03 \x01(\x0b\x32+.extensions.core_api.cast_channel.AuthError*J\n\x12SignatureAlgorithm\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x13\n\x0fRSASSA_PKCS1v15\x10\x01\x12\x0e\n\nRSASSA_PSS\x10\x02\x42\x02H\x03')
TypeError: __init__() got an unexpected keyword argument 'syntax'

Any ideas?

many thanks
Max

Tray mode doesn't find device, crashes when searching, device perms issue? - KDE, Ubuntu 16.04.1

Hello,

So running from a terminal runs perfectly fine and chromecast devices show up in pavucontrol and everything works. In tray mode the chromecast device is never found and running a search will crash. OS is Kubuntu 16.04.1 and I verified all dependencies were met by your specs. Running in debug mode I got the following at search [see below]. Now if I run the same thing under sudo it works. Well, kind of. The Chromecast audio device isn't available in pavucontrol for obvious reasons (ran as root) but a search will find the device, it shows up in the GUI, can be selected and connected to.

charles@muadib:~$ mkchromecast --debug -t
('ALSA device name:', None)
('Google Cast name:', None)
('backends: ', ['ffmpeg', 'avconv', 'parec'])
('ALSA device name:', None)
('Google Cast name:', None)
('backends: ', ['ffmpeg', 'avconv', 'parec'])
USER =charles
PATH =/home/charles/bin:/home/charles/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
mkchromecast v0.3.6
(':::audio::: chunk_size: ', 1024)
:::audio::: tray =True
Configuration file exist
Using defaults set there
('ffmpeg', 'aac', '192', '44100')
:::audio::: Program /usr/bin/ffmpeg found in /usr/bin/ffmpeg
:::audio::: backend dictionary {'/usr/bin/ffmpeg': 'ffmpeg', 'ffmpeg': 'ffmpeg'}
Selected backend: /usr/bin/ffmpeg
Selected audio codec: aac
Default bitrate used: 192k
Default sample rate used: 44100Hz
:::audio::: command ['/usr/bin/ffmpeg', '-ac', '2', '-ar', '44100', '-f', 'pulse', '-i', 'mkchromecast.monitor', '-acodec', 'aac', '-f', 'adts', '-ac', '2', '-ar', '44100', '-b:a', '192k', '-cutoff', '18000', 'pipe:']
:::cast::: sockets method 192.168.105.153
Configuration file exist
Using defaults set there
(':::systray::: Screen resolution: ', 1920, 1080)
:::systray::: High-DPI screen detected...
Configuration file exist
Using defaults set there
Traceback (most recent call last):
File "/usr/share/mkchromecast/mkchromecast/systray.py", line 259, in search_cast
self.search_notification()
File "/usr/share/mkchromecast/mkchromecast/systray.py", line 878, in search_notification
gi.require_version('Notify', '0.7')
File "/usr/lib/python2.7/dist-packages/gi/init.py", line 102, in require_version
raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Notify not available
Aborted (core dumped)

A few queries

Hi muammar,

I had a couple of questions about mkchromecast and wasn't sure where else to post them, hope you don't mind me doing it here.

1 - I'm having trouble launching mkchromecast on startup. I've tried a variety of methods including a 'post-up' bash script, a rc.local command, and a cron command. Each time, the chromecast connects, but the audio sink is not created. I'm sure it's not a problem with pulseaudio, because if I do it manually, it always works fine. Do you know a method that has been proven to work?

2 - Is there a way of testing if mkchromecast is still connected to a chromecast and re-connecting if it is not? I eventually want my system to be able to automatically re-connect to available chrome casts after they have been 'hijacked' and become available again.

Thanks for your time!

No Cast Devices Found

I installed on Ubuntu 16.04 using the mkchromecast .deb and the python-pychromecast .deb. Mkchromecast appears to work in all respects except that it cannot find my chromecast device: No cast device found.

The Ubuntu computer is on the same network (tried with both ethernet and wifi and both) as the Chromecast. And the chromecast device (chromecast audio) shows up on my phone.

Any idea what is going wrong here?

Exception error

Hi there,

I'm running mkchromecast on Raspbian. I have installed all of the dependancies manually and have used pip3 since I couldn't get pip to install the packages properly. It now runs, discovers my chrome cast, but the connection is refused. Below is the output from terminal. Any help getting this working would be amazing - my aim is to stream all system audio to a group of chromecast audios.

Thanks :)

pi@raspberrypi:~/mkchromecast $ python3 mkchromecast.py
mkchromecast v0.3.6
Creating pulseaudio sink...
Open pavucontrol and select the mkchromecast sink.
Starting local streaming server
[Done]
Selected backend: pared
Selected audio codec: mp3
Default bitrate used: 192k
Default sample rate used: 44100Hz
PID of main process: 4396
PID of streaming process: 4403
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

List of Google Cast devices available in your network:
------------------------------------------------------

Index   Friendly name
=====   ============= 
0       Living Room

We will cast to first device in the list above!

Living Room


Information about  Living Room

DeviceStatus(friendly_name='Living Room', model_name='Chromecast Audio', manufacturer='Google Inc.', api_version=(1, 0), uuid=UUID('add8ae6c-37d1-f3cb-a782-48063b3d1f3c'), cast_type='audio')

Status of device  Living Room

CastStatus(is_active_input=None, is_stand_by=None, volume_level=0.08627451211214066, volume_muted=False, app_id=None, display_name=None, namespaces=[], session_id=None, transport_id=None, status_text='')

The IP of Living Room is: 192.168.0.19
Your local IP is: 192.168.0.13

The media type string used is: audio/mpeg

Cast media controller status

CastStatus(is_active_input=None, is_stand_by=None, volume_level=0.08627451211214066, volume_muted=False, app_id='CC1AD845', display_name='Default Media Receiver', namespaces=['urn:x-cast:com.google.cast.media', 'urn:x-cast:com.google.cast.inject'], session_id='67B2B0A1-234B-44C7-9DD1-7122BCBED072', transport_id='web-2', status_text='Ready To Cast')

Remember to open pavucontrol and select the mkchromecast sink.

Ctrl-C to kill the application at any time

[2016-10-04 14:49:37,565] ERROR in app: Exception on /stream [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/flask/app.py", line 1988, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.4/dist-packages/flask/app.py", line 1641, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.4/dist-packages/flask/app.py", line 1544, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.4/dist-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/usr/local/lib/python3.4/dist-packages/flask/app.py", line 1639, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.4/dist-packages/flask/app.py", line 1625, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/mkchromecast/mkchromecast/audio.py", line 520, in stream
    process = Popen(command, stdin=parec.stdout, stdout=PIPE, bufsize=-1)
  File "/usr/lib/python3.4/subprocess.py", line 859, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.4/subprocess.py", line 1457, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'lame'
192.168.0.19 - - [04/Oct/2016 14:49:37] "GET /stream HTTP/1.1" 500 -

VPN problem/FAQ suggestion

I had some trouble getting mkchromecast working om Debian and after some troubleshooting I figured out that OpenVPN was the problem. Passing --host local-ip-adress solved my problem.

This might just be me being dense but a word or two about this in the FAQ, kind of like the comment about UFW/port 5000, could have saved me some time.

Command Line Control on Mac OS

Can anyone point me in the right direction of how to send commands in Mac Os Sierra's Terminal to initiate a stream to a specific chromecast audio group?

Thanks in advance.

Choppy video/audio

When I use this to cast a video, it will pause for a split second every 5 to 10 seconds or so. Audio and video will stay in sync however.

Other players such as stream2chromecast and castnow don't have this issue, but I prefer mkchromecast because when I press q, playback stops immediately, whereas the others keep playing until the chromecast's buffer empties.

Connects to chromecast audio through the system tray menu, but doesn't send audio

To start off, I know nothing about programming.

But right now this programme seems to be the only real alternative to soundcast, so I decided to give it a try by downloading the standalone macOS app and soundflower.

It does connect to the chromcast, it gives that lovely connected sound (with some delay).
It also sends through the sounds of my microphone (again with some delay), but no sound from any programme on my computer.
I have tried changing the sound output and input to both soundflower 2ch, and 64ch.

I am working with a macbook air, version 10.12, and a chromecast audio connected to a regular stereo amplifier.

What am I doing wrong?

can't cast to my google audio chromecast

Hello my ~/.asoundrc needs to look like

pcm.snd_card {

    type hw

    card 0

    device 3

}

ctl.snd_card {

    type hw

    card 0

    device 3

}

So that I can hear some sound through my HDMI.

Aplay –l looks like

% cat /proc/asound/cards                                                                                                                             
 0 [HDMI            ]: HDA-Intel - HDA Intel HDMI
                  HDA Intel HDMI at 0xc1814000 irq 57
 1 [PCH             ]: HDA-Intel - HDA Intel PCH
                  HDA Intel PCH at 0xc1810000 irq 61

My /etc/pulse/client.conf

autospawn=no

How do I need to configure the .asoundrc file that I can cast my audio through my chromecast?

dynamically launching mkchromecast

If I try to dynamically launch mkchromecast (mkchromecast.py -n mydevice) in a non blocking method (subprocess.Popen, os.system) also using the & option. the chomecast will never connect. works perfectly from terminal.

what I would like to do is control mkchromecast remotely from a phone for example. I am trying to write a basic python script with flask to control over http. Do you have any suggestions.

Chromecast Audio support up to 24-bit / 192kHz

Chromecast Audio accepts up to 24-bit / 192kHz PCM .wav and .flac files via (amongst others UPnP Server) and plays them in full resolution. Could we add 24-bit support at different sample rates, including 88.2kHz, 96kHz, 176.4kHz and 192kHz into this mkchromecast project ? And if possible, could we also add the preferred bit-depth and sample rate to the dropdown menu ?

Unable to install - No matching distribution found for sip>=4.19

When trying to install the requirements for mkchromecast, it fails on sip:-

$ pip install --user -r requirements.txt
Collecting Flask==0.12 (from -r requirements.txt (line 1))
  Using cached Flask-0.12-py2.py3-none-any.whl
Requirement already satisfied: mutagen==1.36.2 in /home/chaz/.local/lib64/python3.4/site-packages (from -r requirements.txt (line 2))
Collecting netifaces==0.10.5 (from -r requirements.txt (line 3))
  Using cached netifaces-0.10.5.tar.gz
Collecting psutil==5.0.1 (from -r requirements.txt (line 4))
  Using cached psutil-5.0.1.tar.gz
Collecting PyChromecast==0.7.7 (from -r requirements.txt (line 5))
  Using cached PyChromecast-0.7.7-py2.py3-none-any.whl
Requirement already satisfied: requests==2.13.0 in /home/chaz/.local/lib64/python3.4/site-packages (from -r requirements.txt (line 6))
Collecting setuptools==34.1.0 (from -r requirements.txt (line 7))
  Using cached setuptools-34.1.0-py2.py3-none-any.whl
Collecting PyQt5==5.7.1 (from -r requirements.txt (line 8))
  Using cached PyQt5-5.7.1-5.7.1-cp34.cp35.cp36-abi3-manylinux1_x86_64.whl
Collecting gi==1.2 (from -r requirements.txt (line 9))
  Using cached gi-1.2.tar.gz
Requirement already satisfied: click>=2.0 in /home/chaz/.local/lib64/python3.4/site-packages (from Flask==0.12->-r requirements.txt (line 1))
Requirement already satisfied: Werkzeug>=0.7 in /home/chaz/.local/lib64/python3.4/site-packages (from Flask==0.12->-r requirements.txt (line 1))
Requirement already satisfied: Jinja2>=2.4 in /home/chaz/.local/lib64/python3.4/site-packages/Jinja2-2.7.3-py3.4.egg (from Flask==0.12->-r requirements.txt (line 1))
Collecting itsdangerous>=0.21 (from Flask==0.12->-r requirements.txt (line 1))
  Using cached itsdangerous-0.24.tar.gz
Requirement already satisfied: six>=1.10.0 in /home/chaz/.local/lib64/python3.4/site-packages (from PyChromecast==0.7.7->-r requirements.txt (line 5))
Collecting protobuf==3.0.0b2 (from PyChromecast==0.7.7->-r requirements.txt (line 5))
  Using cached protobuf-3.0.0b2-py2.py3-none-any.whl
Collecting zeroconf>=0.17.4 (from PyChromecast==0.7.7->-r requirements.txt (line 5))
  Using cached zeroconf-0.18.0-py2.py3-none-any.whl
Collecting appdirs>=1.4.0 (from setuptools==34.1.0->-r requirements.txt (line 7))
  Using cached appdirs-1.4.0-py2.py3-none-any.whl
Collecting packaging>=16.8 (from setuptools==34.1.0->-r requirements.txt (line 7))
  Using cached packaging-16.8-py2.py3-none-any.whl
Collecting sip>=4.19 (from PyQt5==5.7.1->-r requirements.txt (line 8))
  Could not find a version that satisfies the requirement sip>=4.19 (from PyQt5==5.7.1->-r requirements.txt (line 8)) (from versions: )
No matching distribution found for sip>=4.19 (from PyQt5==5.7.1->-r requirements.txt (line 8))

OS X lossless support

Hello,
I installed mkchromecast and ffmpeg with all the options you proposed in the docs. When I open the preferences panel, only mp3 is available.
Do I need to install anything else?

Playing from pipe/stream instead of hooking into soundsystem

I realize that my use-case of mkchromecast mostly would be to move the sound of mpd https://www.musicpd.org/ to the chromecast-audio. All this hooking up to pulseaudio or alsa would not really be necessary, perhaps rather unwanted. I may actually want to hear other sounds from the speakers on the computer.

So, having mkchromecast reading directly from a pipe or a http stream perhaps would make more sense. I assume the data here being already ogg, mp3 or so is not a problem (not really any overhead), since mkchromecast is doing the encoding anyway. What do you think?

Sony soundbar with cast support

mkchromecast is able to detect my two sony soundbars right out of the box, very encouraging start! two issues that I have:

  • the subwoofer connected to the sound bar does not play any audio when using mkchromecast. It does work will every other input for example the same audio source connected through HDMI and other chromecast sources.

  • no matter which device i select (device 1, device 2 or a group) mkchromecast always casts to all speakers. good news is that its in perfect multiroom sync. Ideally I could only cast to one of the devices.

Running Ubuntu 16.10

Unmet dependencies on Ubuntu 16.04 LTS (64 bit)

dpkg -i mkchromecast_0.3.2-1_all.deb gives the following:

Unpacking mkchromecast (0.3.2-1) over (0.3.2-1) ...
dpkg: dependency problems prevent configuration of mkchromecast:
 mkchromecast depends on python-flask; however:
  Package python-flask is not installed.
 mkchromecast depends on python-pychromecast; however:
  Package python-pychromecast is not installed.
 mkchromecast depends on python-psutil; however:
  Package python-psutil is not installed.
 mkchromecast depends on sox (>= 14.4.1); however:
  Package sox is not installed.

dpkg: error processing package mkchromecast (--install):
 dependency problems - leaving unconfigured

python-pychromecast doesn't appear to be in the repositories.
Fetching the pychromecast deb from here then running apt-get -f install appears to fix it.
I've now installed it and connected to my Chromecast. Haven't actually tried sending anything yet.

Ubuntu 16.10 not working

I installed it through apt-get only when i search for the app and launch it nothing happens?
I should get an icon in the toolbar on top right ?

Can't get mkchromecast installed on Linux mint.

Posted on stackexchange as well.

I'm trying to install mkchromecast on Linux Mint.

Following the instructions on the website, I first tried:

$ sudo apt-get install mkchromecast

Which returned:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package mkchromecast

When this didn't work, I downloaded the .deb and tried this:

$ sudo dpkg -i mkchromecast_0.3.6-3_all.deb

and got the following response:

Selecting previously unselected package mkchromecast.
(Reading database ... 244586 files and directories currently installed.)
Preparing to unpack mkchromecast_0.3.6-3_all.deb ...
Unpacking mkchromecast (0.3.6-3) ...
dpkg: dependency problems prevent configuration of mkchromecast:
 mkchromecast depends on python-flask; however:
  Package python-flask is not installed.
 mkchromecast depends on python-pychromecast; however:
  Package python-pychromecast is not installed.
 mkchromecast depends on python-psutil; however:
  Package python-psutil is not installed.
 mkchromecast depends on vorbis-tools (>= 1.4.0); however:
  Package vorbis-tools is not installed.
 mkchromecast depends on lame (>= 3.99.0); however:
  Package lame is not installed.
 mkchromecast depends on flac (>= 1.3.0); however:
  Package flac is not installed.
 mkchromecast depends on python-pyqt5; however:
  Package python-pyqt5 is not installed.
 mkchromecast depends on youtube-dl; however:
  Package youtube-dl is not installed.

dpkg: error processing package mkchromecast (--install):
 dependency problems - leaving unconfigured
Processing triggers for desktop-file-utils (0.22-1ubuntu5.1) ...
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Errors were encountered while processing:
 mkchromecast

A few Google searches led me to try:

sudo gdebi mkchromecast_0.3.6-3_all.deb

Which returned:

Reading package lists... Done
Building dependency tree        
Reading state information... Done
Reading state information... Done
This package is uninstallable
Dependency is not satisfiable: python-pychromecast

So I downloaded the python-pychromecast.deb and:

sudo gdebi python-pychromecast_0.7.7-2_all.deb

But it seems the right version of python-protobuf is not installed:

Reading package lists... Done
Building dependency tree        
Reading state information... Done
Reading state information... Done
This package is uninstallable
Dependency is not satisfiable: python-protobuf (>= 3)

However, if I run:

sudo apt-get install python-protobuf

It tells me it already is on the newest version:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
python-protobuf is already the newest version (2.6.1-1.3).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Therefore I forced an install of the right version with:

sudo -H pip install --upgrade protobuf==3.2.0

But this gives this response:

Requirement already up-to-date: protobuf==3.2.0 in /usr/local/lib/python2.7/dist-packages/protobuf-3.2.0-py2.7.egg
Requirement already up-to-date: six>=1.9 in /usr/lib/python2.7/dist-packages (from protobuf==3.2.0)
Requirement already up-to-date: setuptools in /usr/local/lib/python2.7/dist-packages (from protobuf==3.2.0)
Requirement already up-to-date: appdirs>=1.4.0 in /usr/local/lib/python2.7/dist-packages (from setuptools->protobuf==3.2.0)
Requirement already up-to-date: packaging>=16.8 in /usr/local/lib/python2.7/dist-packages (from setuptools->protobuf==3.2.0)
Requirement already up-to-date: pyparsing in /usr/local/lib/python2.7/dist-packages (from packaging>=16.8->setuptools->protobuf==3.2.0)

Which leads me to believe version >= 3 should be installed...

Can anyone tell me what I'm doing wrong? Thanks!

"Null Output" showing as name of audio device in Sound

When I switch from one Chromecast device to the other, a new sink is created, sometimes called mkchromecast and sometimes called Null Output. Sometimes, they are both called Null Output. This makes it difficult to determine where the sound will be routed. Any way to remedy?

screenshot from 2017-04-22 11-06-17

"No devices found" for a miracast device

First of all, thank you for this!

I am trying to connect to my miracast device (see below for hardware details) but get the following:

$ mkchromecast 
mkchromecast v0.3.6
Creating pulseaudio sink...
Open pavucontrol and select the mkchromecast sink.
Starting local streaming server
[Done]
Selected backend: parec
Selected audio codec: mp3
Default bitrate used: 192k
Default sample rate used: 44100Hz
PID of main process: 8629
PID of streaming process: 8832
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
No devices found!
/sbin/mkchromecast: line 9:  8629 Killed                  python /usr/share/mkchromecast/mkchromecast.py

I am testing this on Arch Linux, the sink does briefly appear in pavucontrol so the only issue seems to be that it doesn't detect the device. The device is seen by Android (BubbleUPnP) and iOS devices (AirPlay) so I assume it should also be seen by mkchromecast.

I looked at your code and as far as I can tell, the device list is being returned by the get_chromecasts_as_dict function which is provided by pychromecast. Is there any way to get this to find my device or does pychromecast support chromecast devices exclusively and no miracast?

In case it matters, the hardware specs of my device are shown below. The device itself is from a local (Greek) manufacturer and its manual gives the following specs (translated to the best of my ability):

Miracast TV dongle
CPU                              AM8251
RAM                             DDR3 128M
ROM                             Flash 128M
Power Supply               ≤ 400mA@5V
OS                                Linux
Supports                       EZCast, Airplay, Miracast, DLNA
Wi-Fi                             IEEE 802.11 b/g/n
Audio                            WMA/WAV/OGG/AAC/FLAC/3GP...
Video                            MP4/MKV/AVI/RM/RMVB/MOV/TS...
Images                         JPEG/JPG/BMP/PNG/GIF/TIFF...
Βίντεο 
Supported OSs            Android  : Android4.0 or later
                                    IOS         : IOS6 or later
                                    Mac         : Mac10.7
                                    Windows : WinXP/7/8
Make                           TURBO-X

Can't stream with Wi-Fi

The performance over Wi-Fi seems very poor, but the case is different with a wired connection (100Mb/s). What is the minimum bandwidth requirement? Also, the latency slightly improves when other devices are disconnected from the network. Another issue is that it seems to need a restart when no media is streamed for a while. Regarding latency, there must be some algorithm to fix this, something like buffering and/or using smaller packets (I'm no expert), since streaming with other mobile apps is without this issue.

cannot import name 'DependencyWarning

I'm getting this when I launch mkchromecast :

Traceback (most recent call last):
  File "/usr/share/mkchromecast/mkchromecast.py", line 8, in <module>
    from mkchromecast.cast import *
  File "/usr/share/mkchromecast/mkchromecast/cast.py", line 13, in <module>
    import pychromecast
  File "/usr/lib/python3.5/site-packages/pychromecast/__init__.py", line 12, in <module>
    from .config import *  # noqa
  File "/usr/lib/python3.5/site-packages/pychromecast/config.py", line 6, in <module>
    import requests
  File "/usr/lib/python3.5/site-packages/requests/__init__.py", line 60, in <module>
    from .packages.urllib3.exceptions import DependencyWarning
ImportError: cannot import name 'DependencyWarning'

My system is Arch Linux I have followed the this instruction to get it installed : https://github.com/muammar/mkchromecast#arch-linux

the compile seemed to be going fine, no errors, nothing interrupted the compilation but
when I execute mkchromecast I still have missing dependencies.

Using Python 3.5.2

mkchromecast starts, but doesn't show the tray menu or any stdout

Hi,

maybe I'm overlooking something really obvious, but on my pretty fresh mac os sierra install, the current mkchromecast 0.3.6 installed from dmg opens without any error, however I don't get to see a tray menu or find any other way to interact with it. (Soundflower 2.02b is installed via homebrew)

I tried a few cli parameters but nothing except "-r" makes any difference. And -r just kills the process immediately.

Console doesn't show anything that is looks particularly special to me

bildschirmfoto 2017-02-02 um 21 21 16

Not sure what other information I can provide to help troubleshoot this.

Can you help?

Regards, Gerd

Options to reset default configuration

I would like to have an option for reseting to default configuration, because I dont' know the type of audio codec, so I'm afraid to messe up and don't have an option to come back to the default settings.

Thanks :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.