Add-on manager: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Gamester17
>Alexpoet
(Cleaned up the text, and moved some developer-focused content off to the relevant developer pages)
Line 1: Line 1:
'''Add-ons''' are (usually third-party) extra value features and functions that are not included with XBMC by default which can be added by the end-user themselves if they like to add. Plugins, script, skins, and EventClient's are counted as such "Add-ons" as they 'add-on' new features and functions to XBMC.
'''Add-ons''' are packages that add features and functions not normally included with XBMC. Add-ons are usually developed by third-parties. Add-ons provide extra value and flexibility by making it easy for programmers to add new functions to the program, and letting users pick and choose which packages they want to use. XBMC's supported add-ons include plugins, scripts, skins, and EventClients.
 
(This page is intended as a guide for XBMC users. There are dedicated pages available if you're looking for more details on [[Python Development]], [[Skinning XBMC]], or creating an [[EventServer|EventClient]].)
 


=Python Add-ons=
=Python Add-ons=
XBMC provides to python a way to create graphical user interfaces, access to read infomation about the the hardware and operating-system enviroment, and ability to extend XBMC features by allowing python scripters to create plugins and scripts for specific web sites to download and allow you to watch content from. You can also use python in programming a web interface.
To quote [http://python.org Python.org], ''"Python® is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code."''  
===About Python===
 
To quote [http://python.org Python.org]: ''"Python® is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code"''.  
What this means to you is that Python provides third-party developers with a full-featured scripting language. Scripts and plugins can be incredibly powerful. There are many available, and more being developed every day.
 
===Understanding the Difference between Plugins and Scripts===
It can be easy to confuse "[[Plugins]]" made for XBMC with "[[Scripts]]" made for XBMC. While the distinction can be subtle, [[Scripts|scripts]] are applications launched directly by the user. A [[Plugins|plugin]], on the other hand, builds a list of menu items when the user browses into its virtual folder. Even though both are Python files ("*.py"), if you try to run a [[Plugins|plugin]] file from the scripts window, you will only get an error message. [[Plugins]] can only be accessed as virtual folders in the regular menu structure.


===Python plugin versus script confusion===
From a design perspective, [[Plugins|plugins]], unlike [[Scripts|scripts]], do not really provide new functionality to XBMC. Instead, they provide an easy way to display content listings in XBMC through the native GUI interface.  
Please do not confuse "[[Plugins]]" made for XBMC with "[[Scripts]]" made for XBMC. Unlike the [[Scripts]], [[Plugins]] are not meant to be directly invoked by the user. Instead, [[Plugins]] are automatically invoked when the user enters such a virtual folder. Do not try to run [[Plugins]] files from the scripts window as that will only give you some weird error message. [[Plugins]], unlike [[Scripts]], do not really provide new functionality to XBMC, instead what they do do is provide an easy way to present content listings in XBMC through the native GUI interface.  


==[[Plugins]]==
==[[Plugins]]==
[[Plugins]]. XBMC features [http://en.wikipedia.org/wiki/Python_%28programming_language%29 Python interpreter engine (version 2.4)] and XBMC GUI interface have built-in 'Add-on' support for displaying content listings that present to that GUI interface. Plugins, unlike [[HOW-TO install and use scripts in XBMC|scripts]], do not really provide new functionality to XBMC, instead what they do do is provide an easy way to present content listings in XBMC through the native GUI interface. Content is usually online sources like Internet audio and video streams, (like Internet TV-channels, and radio-station, or Podcasts), or pictures from websites which as Flickr and Picasa Web.
[[Plugins]]. Plugins provide an easy way for third-party developers to present content listings in XBMC through the native GUI interface. This content is usually gathered from online sources like Internet audio and video streams, (i.e. Internet TV channels, radio stations, or Podcasts), or pictures from websites such as Flickr and Picasa Web.
 
You can find complete instructions on downloading and installing a plugin [[Plugins|here]].


==[[Scripts]]==
==[[Scripts]]==
[[Scripts]]. XBMC features [http://en.wikipedia.org/wiki/Python_%28programming_language%29 Python interpreter engine (version 2.4)] and [[Window Structure|WindowXML application framework]] (a XML-based widget toolkit for creating GUI windows) in a similar fashion to Apple Mac OS X Dashboard Widgets and Microsoft Gadgets in Windows Sidebar. So normal users can add new functionality to XBMC themselves (using the easy to learn [http://en.wikipedia.org/wiki/Python_%28programming_language%29 Python programming language]) without knowledge of the complex C/C++ programming language. Current python scripts for XBMC include functions like cinema guides, TV-guides (EPG), e-mail clients, instant messaging, train-timetables, scripts to front-end control PVR software and hardware (like: MediaPortal, MythTV, TiVo, ReplayTV, Dreambox/DBox2), Internet-radio-station browsers (example SHOUTcast, Xm radio, Sirius Satellite Radio), P2P file-sharing downloaders (BitTorrent), IRC instant messaging chat, also casual games (sometimes also referred to as mini-games or party-games) such as Tetris, Snake, Space Invaders, Sudoku, and much more.
[[Scripts]]. XBMC combines a Python interpreter with the [[Window Structure|WindowXML application framework]] (an XML-based widget toolkit for creating GUI windows), so that script developers can create new tools much like the Dashboard Widgets in Apple Mac OS X or the Microsoft Gadgets in Windows Sidebar.  
 
* Current python scripts for XBMC include applications like  
* Cinema guides
* TV guides (EPG)
* E-mail and Instant Messaging clients
* Train timetables
* Front-end controls for PVR software and hardware (like MediaPortal, MythTV, TiVo, ReplayTV, Dreambox/DBox2)
* Internet radio browsers (like SHOUTcast, Xm radio, Sirius Satellite Radio)
* P2P file-sharing downloaders (BitTorrent)
* IRC instant messaging chat
* Casual games (sometimes also referred to as mini-games or party-games) like Tetris, Snake, Space Invaders, Sudoku, and many more.
 
You can find complete instructions on downloading and installing a script [[Scripts|here]].
 


=[[Skins]]=
=[[Skins]]=
[[Skins]]. XBMC is noted as having a very flexible and robust framework for its GUI, (now also proven by the fact that several other software projects have copied it), making theme-skinning and personal customization very accessible. Users can download and user others third-parties skins in XBMC, or create their own skin (or modify an existing skin) and share it with others via public websites dedicated for Xbox skins trading. "Project Mayhem" is the official default skin for XBMC; ("Project Mayhem" which is now in its third version is commonly know as "PMIII", there is also a high-definition version of this skin that is called "PM3.HD").
[[Skins]]. XBMC boasts a flexible and robust framework of its GUI (clearly demonstrated by the many other software projects copying it). This same flexibility makes theme-skinning and personal customization readily accessible. You can easily download and use third-parties skins in XBMC to customize your viewing experience. If you're interested, you could also create your own skin (or modify an existing skin) to share with others via public websites dedicated to Xbox skins trading.  
 
Note: "Project Mayhem" is the official default skin for XBMC. "Project Mayhem" is now in its third version, commonly abbreviated as "PMIII." XBMC also includes a high-definition version of this skin called "PM3.HD."
 
In addition to the many third-party skins of original and unique design, you can also find skins that are near replicas of other popular multimedia software, including Apple TV and Front Row, Microsoft Windows Media Center Edition (MCE), MediaPortal, Meedio/MeediOS, HDeeTV, Kaleidescape, Xbox 360, PlayStation 3, and others. Each skin provides a totally different and unique user experience, showing just how flexible XBMC’s skinning engine really is.
 
You can find complete instructions on downloading and installing a custom skin [[Skins|here]].


Many third-party skins exist and while many are of original and unique designs, a few skins are almost exact replicas of other multimedia software, with skins clones of Apple TV and Front Row, Microsoft Windows Media Center Edition (MCE), MediaPortal, Meedio/MeediOS, HDeeTV, Kaleidescape, Xbox 360, PlayStation 3, and others. Each skin provides a totally different and unique user experience, all showing just how flexible XBMC’s skinning engine really is.


=[[EventServer|EventClients]]=
=[[EventServer|EventClients]]=
[[EventServer|EventClients]]. XBMC acts as the [[EventServer]] which listens for commands from the Event Clients. Currently, support for remotes or gamepad-controllers has been implemented as event clients, however anything that want to send commands to XBMC can be implemented as one. To keep this communication as fast and plug n' play as possible UDP was chosen. UDP is used in things such as network games and is one of the lowest layers of network communication. This grants low latencies and very little overhead.
[[EventServer|EventClients]]. XBMC acts as an [[EventServer]], allowing it to respond to software commands from any properly-configured EventClient. The most popular EventClients are programs that allow users to control XBMC with remotes or gamepad-controllers. However, EventClients can be configured for any process that needs to send software commands to XBMC.


These commands are completely cross platform, e.g you can have an EventClient on a Linux/Mac/Windows-based computer that sends the commands to XBMC for Xbox.  
To keep this communication as fast and plug-and-play as possible, we chose UDP. UDP is used in applications like network games because it is one of the lowest layers of network communication. This method grants low latencies and little overhead.


EventServer commands are completely cross platform, so you can (for example) have an EventClient on a Linux, Mac, or Windows-based computer that sends the commands to XBMC for Xbox.


You can find complete instructions on configuring an EventServer and EventClient [[EventServer|here]].





Revision as of 21:28, 9 March 2009

Add-ons are packages that add features and functions not normally included with XBMC. Add-ons are usually developed by third-parties. Add-ons provide extra value and flexibility by making it easy for programmers to add new functions to the program, and letting users pick and choose which packages they want to use. XBMC's supported add-ons include plugins, scripts, skins, and EventClients.

(This page is intended as a guide for XBMC users. There are dedicated pages available if you're looking for more details on Python Development, Skinning XBMC, or creating an EventClient.)


Python Add-ons

To quote Python.org, "Python® is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code."

What this means to you is that Python provides third-party developers with a full-featured scripting language. Scripts and plugins can be incredibly powerful. There are many available, and more being developed every day.

Understanding the Difference between Plugins and Scripts

It can be easy to confuse "Plugins" made for XBMC with "Scripts" made for XBMC. While the distinction can be subtle, scripts are applications launched directly by the user. A plugin, on the other hand, builds a list of menu items when the user browses into its virtual folder. Even though both are Python files ("*.py"), if you try to run a plugin file from the scripts window, you will only get an error message. Plugins can only be accessed as virtual folders in the regular menu structure.

From a design perspective, plugins, unlike scripts, do not really provide new functionality to XBMC. Instead, they provide an easy way to display content listings in XBMC through the native GUI interface.

Plugins

Plugins. Plugins provide an easy way for third-party developers to present content listings in XBMC through the native GUI interface. This content is usually gathered from online sources like Internet audio and video streams, (i.e. Internet TV channels, radio stations, or Podcasts), or pictures from websites such as Flickr and Picasa Web.

You can find complete instructions on downloading and installing a plugin here.

Scripts

Scripts. XBMC combines a Python interpreter with the WindowXML application framework (an XML-based widget toolkit for creating GUI windows), so that script developers can create new tools much like the Dashboard Widgets in Apple Mac OS X or the Microsoft Gadgets in Windows Sidebar.

  • Current python scripts for XBMC include applications like
  • Cinema guides
  • TV guides (EPG)
  • E-mail and Instant Messaging clients
  • Train timetables
  • Front-end controls for PVR software and hardware (like MediaPortal, MythTV, TiVo, ReplayTV, Dreambox/DBox2)
  • Internet radio browsers (like SHOUTcast, Xm radio, Sirius Satellite Radio)
  • P2P file-sharing downloaders (BitTorrent)
  • IRC instant messaging chat
  • Casual games (sometimes also referred to as mini-games or party-games) like Tetris, Snake, Space Invaders, Sudoku, and many more.

You can find complete instructions on downloading and installing a script here.


Skins

Skins. XBMC boasts a flexible and robust framework of its GUI (clearly demonstrated by the many other software projects copying it). This same flexibility makes theme-skinning and personal customization readily accessible. You can easily download and use third-parties skins in XBMC to customize your viewing experience. If you're interested, you could also create your own skin (or modify an existing skin) to share with others via public websites dedicated to Xbox skins trading.

Note: "Project Mayhem" is the official default skin for XBMC. "Project Mayhem" is now in its third version, commonly abbreviated as "PMIII." XBMC also includes a high-definition version of this skin called "PM3.HD."

In addition to the many third-party skins of original and unique design, you can also find skins that are near replicas of other popular multimedia software, including Apple TV and Front Row, Microsoft Windows Media Center Edition (MCE), MediaPortal, Meedio/MeediOS, HDeeTV, Kaleidescape, Xbox 360, PlayStation 3, and others. Each skin provides a totally different and unique user experience, showing just how flexible XBMC’s skinning engine really is.

You can find complete instructions on downloading and installing a custom skin here.


EventClients

EventClients. XBMC acts as an EventServer, allowing it to respond to software commands from any properly-configured EventClient. The most popular EventClients are programs that allow users to control XBMC with remotes or gamepad-controllers. However, EventClients can be configured for any process that needs to send software commands to XBMC.

To keep this communication as fast and plug-and-play as possible, we chose UDP. UDP is used in applications like network games because it is one of the lowest layers of network communication. This method grants low latencies and little overhead.

EventServer commands are completely cross platform, so you can (for example) have an EventClient on a Linux, Mac, or Windows-based computer that sends the commands to XBMC for Xbox.

You can find complete instructions on configuring an EventServer and EventClient here.