Giter Club home page Giter Club logo

jolivia's Introduction

OpenAirplay 0.0.32

Stream from a Linux computer to an Airplay Receiver.

OpenAirplay is a python implementation of the Apple Airplay client, intended to mimic the OSX Airplay integration.

I have always been annoyed about how iOS, Mac OSX, and all of Apples proprietary hardware/software has inhibited so many of us technology savvy people.

Project Status:

No longer under active development.

I no longer attend my highschool full of Apple devices, so I have no platform to test this project on.

If someone wants to fund this project, buy me a 2nd gen Apple TV or later so I can actually get back to work on this project.

Otherwise, I have no need or ability to continue development, so if you are able and willing, send over some PRs or code edits.

https://github.com/robobenklein/openairplay/milestones

Project Details:

Right now it's Python 3 using the QT system from PyQt4.
It is designed in an Ubuntu Unity environment, but the application should work on any platform with Python 3 and a system tray.
From my last testing, this ran fine on my Dad's Windows 8 laptop, and I've tested Ubuntu 14.04 to 15.10.

Requirements:

See the dependencies.md file for installing the needed software.

Why I'm doing this:

(From 2015:)
I go to a school where everyone has iPads as their learning tool, which are horrid for coding/programming and software development, but make a good classroom common tool. As a result, there is an Apple TV in every single room for the students to quickly present whatever is on their screen, and the teachers can show their presentations with their assigned Macbooks.

I am one of two people at this school who use Linux (Ubuntu) and who bring their laptops every day. I use mine for school work fairly often, as I understand how much I can do in Linux and not iOS. But whenever some task comes up where I'd need to airplay my work to an Apple TV, I'm being restrained to my iPad.

What this aims to be:

This application is designed to sit in your System Tray just like in OSX, with a drop down list of available Airplay Recievers, and allow you to:

  • Stream your desktop
  • Send a photo/picture
  • Play a video
  • Stream Music
    And whatever else the users and developers of this project wish it to be.

Want to help?

I'm always looking for contributors, if you can help with any of these I'd love to work with you.

  • Python network discovery protocols (for finding listings of devices)
  • Airplay/Media protocols
  • Python Qt (thinking about things like screen capture)
  • And developers to help make this work for non-Ubuntu OSs.

jolivia's People

Contributors

jkiddo avatar sbebadelic 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

Watchers

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

jolivia's Issues

Feature request

Wish list.

  1. Add support for AppleTV IP control.
  2. Create an Apple TV and iTunes binding in openHAB home automation project using this code.

open request - dacp client

Hi,

Have installed iTunesRemoteSE jar file on ubuntu. However getting support for it is difficult since it's a largely defunct project. Which is a shame because it 'nearly works well enough'. Just has some few issue(s), at least when on JRE7:

  • First time connect causes an exception
  • Multiple java processes hanging around
  • High memory usage or possible memory leak

So respectfully I kindly place an open request for anybody to use this new java library "jolivia" to replace the iTunesRemoteSE program with some new implementation.

Unfortunately I can't find any other alternatives on linux right now. Please post / comment here if you know of anything else that works with recent iTunes (either of the last 2 versions of iTunes).

Many thanks

java.net.UnknownHostException on Windows Client

When executing org.dyndns.jkiddo.Jolivia on Windows PC and pairing with iTunes, the following exception occurs:

java.net.UnknownHostException: yazawa-Mac-mini.local.
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.<init>(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
    at org.dyndns.jkiddo.service.daap.client.RequestHelper.request(RequestHelper.java:159)
    at org.dyndns.jkiddo.service.daap.client.RequestHelper.requestParsed(RequestHelper.java:118)
    at org.dyndns.jkiddo.service.daap.client.RequestHelper.requestParsed(RequestHelper.java:106)
    at org.dyndns.jkiddo.service.daap.client.RequestHelper.requestParsed(RequestHelper.java:111)
    at org.dyndns.jkiddo.service.daap.client.Session.<init>(Session.java:112)
    at org.dyndns.jkiddo.service.daap.client.PairedRemoteDiscoverer.serviceResolved(PairedRemoteDiscoverer.java:77)
    at javax.jmdns.impl.ListenerStatus$ServiceListenerStatus.serviceResolved(ListenerStatus.java:104)
    at javax.jmdns.impl.JmDNSImpl$1.run(JmDNSImpl.java:872)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

On Mac OS X, it works fine.

I guess that the name by Bonjour (such as "foo.local.") can't be resolved by the OS (or Java Runtime?) on Windows.
As a workaround, I replaced "event.getInfo().getServer()" by "event.getInfo().getInet4Addresses()[0].getHostAddress()" on line 77 of PairedRemoteDiscoverer.java, then it seems to work.

Can't build - jmdns 3.5.1?

Hi,

I seem to be unable to build the project. I am getting this error:

[~/Desktop/jolivia]$ mvn compile                                                                               
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] jolivia
[INFO] jolivia.protocol
[INFO] jolivia.dmap
[INFO] jolivia.airplay
[INFO] jolivia.daap
[INFO] jolivia.dacp
[INFO] jolivia.dpap
[INFO] jolivia.jetty
[INFO] jolivia.example
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building jolivia 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building jolivia.protocol 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ jolivia.protocol ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/t/Desktop/jolivia/jolivia.protocol/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ jolivia.protocol ---
[INFO] Nothing to compile - all classes are up to date
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building jolivia.dmap 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.jmdns:jmdns:jar:3.5.1-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] jolivia ............................................ SUCCESS [  0.003 s]
[INFO] jolivia.protocol ................................... SUCCESS [  0.903 s]
[INFO] jolivia.dmap ....................................... FAILURE [  0.043 s]
[INFO] jolivia.airplay .................................... SKIPPED
[INFO] jolivia.daap ....................................... SKIPPED
[INFO] jolivia.dacp ....................................... SKIPPED
[INFO] jolivia.dpap ....................................... SKIPPED
[INFO] jolivia.jetty ...................................... SKIPPED
[INFO] jolivia.example .................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.154 s
[INFO] Finished at: 2016-05-23T18:04:03-04:00
[INFO] Final Memory: 8M/109M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project jolivia.dmap: Could not resolve dependencies for project org.dyndns.jkiddo:jolivia.dmap:jar:0.0.1-SNAPSHOT: Could not find artifact org.jmdns:jmdns:jar:3.5.1-SNAPSHOT -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :jolivia.dmap

I have looked into jmdns and it seems the newest release that exists is 3.5.0. There doesn't seem to be a result on Maven central for org.jmdns:jmdns, and the closest thing I can find is this release on jcentral. Am I missing something? I do not usually use maven so I apologize if the solution should be obvious.

instructions

could the read me get a little blurb on how to build and run this?

IClientSessionListener.registerNewSession(Session) is never called if other paired devices exists

If iTunes has already paired with other remote devices, org.dyndns.jkiddo.service.daap.client.PairedRemoteDiscoverer.serviceResolved is called shortly after Jolivia is started even if Jolivia has not yet paired with the iTunes
(that means org.dyndns.jkiddo.service.dacp.client.PairingResource.pair has not been called yet).

It seems that PairedRemoteDiscoverer.serviceResolved is not called during the iTunes has no paired remote devices, with the result that serviceResolved is called after PairingResource.pair properly only if Jolivia is first remote device for the iTunes.

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.