Add-on:Simple Downloader for xbmc plugins: Difference between revisions
>TobiasTheCommie |
>TobiasTheCommie No edit summary |
||
Line 11: | Line 11: | ||
|Repo= [[:Category:Pre-Eden add-on repository|Pre-Eden (v11)]] | |Repo= [[:Category:Pre-Eden add-on repository|Pre-Eden (v11)]] | ||
|icon url=}} | |icon url=}} | ||
= Introduction = | = Introduction = | ||
Line 25: | Line 20: | ||
* RTMP downloading if the rtmpdump binary is installed. | * RTMP downloading if the rtmpdump binary is installed. | ||
[[File:Simple_downloader.png|900px| Simple Downloader]] | [[File:Simple_downloader.png|900px| Simple Downloader]] | ||
= Testing/Status = | |||
Integration and unittests are run continously by Jenkins | |||
http://tc.tobiasussing.dk/jenkins/view/Simple%20Downloader/ | |||
= Developers = | = Developers = |
Revision as of 01:57, 31 December 2011
Simple downloader for xbmc plugins. | ||||||||||
|
Add-ons | Simple downloader for xbmc plugins. |
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.
Testing/Status
Integration and unittests are run continously by Jenkins
http://tc.tobiasussing.dk/jenkins/view/Simple%20Downloader/
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 (string, dictionary)
- The supplied string must be an unique identifier. It can be a videoid, an UUID or anything else unique.
- 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)