Add-on:Simple Downloader for xbmc plugins: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>TobiasTheCommie
>TobiasTheCommie
Line 25: Line 25:
= Developers =
= Developers =
This is a unified cross plugin http/rtmp downloader.
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.


== Setup ==
== Setup ==

Revision as of 15:53, 9 December 2011

Simple downloader for xbmc plugins.

See this add-on on the kodi.tv showcase

Author: TheCollective

Type: Add-on library/module
Repo:

Summary: Simple downloader for xbmc plugins.
Home icon grey.png   ▶ 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.

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.

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)