Metadata-Version: 2.1
Name: acestream
Version: 0.1.5
Summary: Interact with the AceStream Engine and the HTTP API
Home-page: https://github.com/jonian/python-acestream
Author: Jonian Guveli
Author-email: jonian@hardpixel.eu
License: UNKNOWN
Project-URL: Bug Reports, https://github.com/jonian/python-acestream/issues
Project-URL: Source, https://github.com/jonian/python-acestream
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: POSIX :: Linux
Description-Content-Type: text/markdown
License-File: LICENSE.txt

# Python AceStream
Python interface to interact with the AceStream Engine and the HTTP API.

## Installation
```
pip install acestream
```

## Usage
```python
import os
import time
import subprocess

from acestream.server import Server
from acestream.engine import Engine
from acestream.stream import Stream

# Create an engine instance
engine = Engine('acestreamengine', client_console=True)

# Connect to a remote server
server = Server(host='streams.com', port=6880)

# If the remote server is not available, connect to a local server
if not server.available:
  server = Server(host='127.0.0.1', port=6878)

  # Start engine if the local server is not available
  if not server.available:
    engine.start()

    # Wait for engine to start
    while not engine.running:
      time.sleep(1)

# Start a stream using an acestream channel ID
stream = Stream(server, id='ff36fce40a7d2042e327eaf9f215a1e9cb622b56')
stream.start()

# Open a media player to play the stream
player = subprocess.Popen(['mpv', stream.playback_url], preexec_fn=os.setsid)

# Wait for player to close and stop the stream
player.communicate()
stream.stop()

# Stop acestream engine
engine.stop()
```

## Search
```python
import os
import time
import random
import subprocess

from acestream.server import Server
from acestream.engine import Engine
from acestream.search import Search

# Create an engine instance
engine = Engine('acestreamengine', client_console=True)

# Connect to a local server
server = Server(host='127.0.0.1', port=6878)

# Start engine if the local server is not available
if not server.available:
  engine.start(stdout=subprocess.PIPE, stderr=subprocess.PIPE)

  # Wait for engine to start
  while not engine.running:
    time.sleep(1)

# Start a search for the sport category
search = Search(server, category='sport')
search.get(page=1)

# Iterate and print search results
for result in search.results:
  print(result.name.ljust(40), str(result.bitrate).ljust(10), result.infohash)

# Start a random stream from the search results
stream = random.choice(search.results).stream
stream.start()

# Open a media player to play the stream
player = subprocess.Popen(['mpv', stream.playback_url], preexec_fn=os.setsid)

# Wait for player to close and stop the stream
player.communicate()
stream.stop()

# Stop acestream engine
engine.stop()
```

## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/jonian/python-acestream.

## License
Python AceStream is available as open source under the terms of the [GPLv3](http://www.gnu.org/licenses/gpl-3.0.en.html)


