Add-on:Simple Downloader for xbmc plugins: Difference between revisions
>NedBot m (Bot: Automated text replacement (-|Repo= Pre-Eden (official) +|Repo= Pre-Eden (v11))) |
>TobiasTheCommie |
||
Line 80: | Line 80: | ||
* live: True # Tell the downloader it is getting a live stream | * live: True # Tell the downloader it is getting a live stream | ||
* max_size: 10000000 # The maximum size(in bytes) of the download stream. Defaults to "10000000" if nothing is specified. | * max_size: 10000000 # The maximum size(in bytes) of the download stream. Defaults to "10000000" if nothing is specified. | ||
NOTE: Changes for next version: | |||
* Name change to download | |||
* Takes two arguments ( identifier, dictionary) | |||
* A "videoid" variable is no long required in the submitted dictionary. | |||
Returns None | Returns None |
Revision as of 16:02, 29 December 2011
Simple downloader for xbmc plugins. | ||||||||||
|
Add-ons | Simple downloader for xbmc plugins. |
Testing/Status
Integration and unittests are run continously by Jenkins
http://tc.tobiasussing.dk/jenkins/view/Simple%20Downloader/
Introduction
This is a downloader developed and used with the YouTube and BlipTV addons.
Features
- One queue across all plugins
- Requeing an existing item moves it to the front of the queue.
- RTMP downloading if the rtmpdump binary is installed.
Developers
This is a unified cross plugin http/rtmp downloader.
It is currently not possible to distribute the rtmpdump binary with this addon.
The user must make sure rtmpdump is installed in a system PATH for rtmp downloading to work.
Development and support thread: http://forum.xbmc.org/showthread.php?t=116500
Setup
To use the downloader edit your addon.xml like this.
<requires> <import addon="xbmc.python" version="2.0"/> <import addon="script.module.simple.downloader.beta" version="0.9.0"/> # Add this </requires>
And add the following to your py file.
import xbmc, xbmcvfs, xbmcaddon settings = xbmcaddon.Addon(id='your.plugin.id') # The same as in addon.xml import SimpleDownloader as downloader downloader = downloader.SimpleDownloader()
You can now access the downloader through the "downloader" variable.
Settings
In your resources/settings.xml you need the following.
<setting id="downloadPath" type="folder" label="Download Location" default="" /> <setting id="hideDuringPlayback" type="bool" label="Hide during playback" default="true" /> <setting id="notification_length" type="enum" label="Notification length in seconds" values="1|2|3|4|5|6|7|8|9|10" default="2" />
Debugging
To enable debugging set the following values in default.py
dbg = True # Default
Or you can change it after import with.
common.dbg = True # Default
Whenever you debug your own code you should also debug in the cache. Otherwise you should remember to DISABLE it.
downloadVideo(self, params = {})
Takes dictionary list with video name and url.
For http and normal RTMP streams you need to specify a video_url, a videoid and a Title.
- video_url: "http://server.com/video.mp4" # Url to download
- videoid: "0" # Video id. Must be unique. Preferably just use the videoid provided from your site(if applicable).
For live RMTP streams you also need to specify live and max_size:
- live: True # Tell the downloader it is getting a live stream
- max_size: 10000000 # The maximum size(in bytes) of the download stream. Defaults to "10000000" if nothing is specified.
NOTE: Changes for next version:
- Name change to download
- Takes two arguments ( identifier, dictionary)
- A "videoid" variable is no long required in the submitted dictionary.
Returns None
A simple http download
params = { "videoid": "0", "video_url": "http://server.com/video.mp4", "Title": "my video" } downloader.downloadVideo(params)
A simple RTMP download
params = {"videoid": "1", "video_url": "rtmp://edge01.fms.dutchview.nl/botr/bunny", "Title": "bunny"} downloader.downloadVideo(params)
A simple RTMP Live download
video = {"videoid": "2", "video_url": "rtmp://aljazeeraflashlivefs.fplive.net:1935/aljazeeraflashlive-live/aljazeera_english_1", "Title": "mock", "live": "true", "max_size": "3000000"} downloader.downloadVideo(params)