Add-on:Cinema Experience

From Official Kodi Wiki
Jump to navigation Jump to search

Cinema Experience
http://mirrors.xbmc.org/addons/frodo/script.cinema.experience/icon.png

See this add-on on the kodi.tv showcase

Author: Giftie - nuka1195

Type: Program
Repo:

Source: Source code
Summary: Re-create a movie theater experience in the comfort of your home.
Home icon grey.png   ▶ Add-ons ▶ Cinema Experience
Attention talk.png Need help with this add-on? See here.

Play intro and outro videos, trivia slideshows, movie trailers and intermission videos. Re-create a movie theater experience in the comfort of your home.

Installing

This add-on is installed from the Add-on browser located in Kodi as follows:

  1. Settings
  2. Add-ons
  3. Install from repository
  4. Program Add-ons
  5. Cinema Experience
  6. Install

About Cinema Experience

History

This add-on has a lot of history. It started life in 2009 as the Home Theatre Experience script, written by an amazing and skilled Python programmer nuka1195. Through out its life it has brought many changes to XBMC. In December 2010, giftie took the reigns, and the script was modified to work with the new add-on engine in XBMC's Dharma. The name was changed, and the incarnation of Cinema Experience you know was born.

In the beginning, the script was only being maintained to function with XBMC. Then the script needed some functional repairs. Later, some major changes (and even some that brought about negative feedback). Now it's 2013, and XBMC Frodo is here. Cinema Experience is here to stay. Cinema Experience is currently maintained and improved by giftie. He's added numerous features to the script, and provides invaluable support via the XBMC forums.

What does it do?

The Cinema Experience script will add that WOW factor to your home theater, and give you a true Cinema Experience! Yes, you will still have to supply the popcorn and drinks. There's not much we can do about that. This script allows you to play trivia slides, movie trailers and other videos (intros and outros) that will help you get that Cinema Experience - just like at the local theater. Trivia slides can be any JPG or PNG image (many Movie Trivia, Stills, and Movie Fact packs already exist). The Feature Presentation Movie(s) must be in your Video Library. Cinema Experience can stream trailers, download them from Apple Movie Trailers, or play locally stored trailer(s) that are on your system or in your Movie Library.

How do I get it?

At the moment, for XBMC Dharma and Eden this add-on is only available through installable ZIP files. The Frodo version has been added to the Official Official XBMC Repository, making it easier to get.

Dharma: Download

Eden: Download

Frodo: Available from the Official XBMC Repository

Reporting Bugs & Requesting Features

Cinema Experience is an evolving creature, getting better and more feature-rich with each release. That said, bugs happen. When they do, a bug report needs to be made. These are to be made on the Cinema Experience forum thread. A debug log is ALWAYS required, along with the steps needed to re-create the bug. I won't be able to help you if I can't understand what's happening.

Reporting Bugs: Method 1

Use the Debug Log Script.

Reporting Bugs: Method 2

Manually locate your xbmc.log file. Copy & paste your xbmc.log file to pastebin.com (or a similar site).

Note: If you feel that you have private information in your log file that you don't want the public be able to see, set up an account on pastebin.com and store it as a private paste.

Uploading Logs

  1. Put XBMC into Debug Mode.
  2. Restart XBMC.
  3. If you have add-ons that run automatically when XBMC starts, wait a few minutes for these scripts to run (ShareThe.TV, Weather.com Plus, etc.).
  4. Run Cinema Experience.
  5. Upload your FULL xbmc.log file to pastebin.com (or a similar site).
  6. Create a new forum message in this thread. Includethe steps required to reproduce the bug and your pastebin.com URL.

Requesting Features

I accept feature requests in this thread. Be sure to be specific about what you'd like to see added.

The Good Stuff

Cinema Experience Sequence

Cinema Experience gives you the ability to enable or disable any introduction videos, or the trivia slideshow. You have the power to customize your cinema experience. The following is an example of the complete script flow:

  1. Trivia Intro Video(s)
  2. Trivia Slides with Optional Music Playlist
  3. Trivia Outro Video(s)
  4. Movie Theater Intro Video(s)
  5. Coming Attractions Intro Video(s)
  6. Trailer(s)
  7. Coming Attractions Outro Video(s)
  8. Feature Presentation Intro Video(s)
  9. Rating Video (MPAA, BBFC and FSK ratings are currently supported)
  10. Audio Format Video
  11. Countdown Video
  12. FEATURE PRESENTATION
  13. Intermission Video(s) (note)
  14. Rating Video (MPAA, BBFC and FSK ratings are currently supported)
  15. Audio Format Video
  16. FEATURE PRESENTATION 2
  17. Rating Video (MPAA, BBFC and FSK ratings are currently supported)
  18. Audio Format Video
  19. FEATURE PRESENTATION 3
  20. Rating Video (MPAA, BBFC and FSK ratings are currently supported)
  21. Audio Format Video
  22. FEATURE PRESENTATION 4
  23. Rating Video (MPAA, BBFC and FSK ratings are currently supported)
  24. Audio Format Video
  25. FEATURE PRESENTATION 5 (end note)
  26. Feature Presentation Outro Video(s)
  27. Movie Theater Outro Video(s)

(note) At this point in the script, if multiple features have been queued and the skin uses home menu integration, multiple rating videos, audio format videos, features, and intermission videos will take the place of a single feature. A total of 5 features can be queued. This option can be even larger if you use one of the starting methods suggested in the Script Starting methods section.

Directory Tree Overviews

Audio Format Directories

The only folder that need to be in a specific format is Audio Format folder. This is because the script uses the name of the Audio Format(DTS, Dolby Digital, etc) to find the appropriate videos.

Trivia Slideshow

The script can display a slideshow at the start of the experience. The slides can be standard still slides or Q&A(with clues). The best method of storing the slides are to have them in separate folders, the script can search the folders recursively.

Stills

Q & A

For the script to determine how and when to display the Q&A slides a file needs to accompany the slide's folder. This file is called 'slides.xml'(not all lower case). Here are some examples of the slides.xml and the filenames.

slides.xml labels

<slide rating=> - allows the ability to specify a 'age' rating similar to movies, this can be used to match the rating of the movie being played or to set a limit on which slides are played based on value set in the Settings)

<question format= /> - provides the format that matches slides as a question slide

<clue format= /> - provides the format that matches slides as a clue slide

<answer format= /> - provides the format that matches slides as an answer slide


Filenaming

slideXXX_q.jpg - Question Slide

slideXXX_c.jpg - Clue Slide

slideXXX_a.jpg - Answer Slide

(XXX) represents a number, up to 3 digits

<slides>
    <slide>
        <slide rating="R">
        <question format=".([0-9]{1,3})+_q.jpg" />
        <clue format=".([0-9]{1,3})+_c.jpg" />
        <answer format=".([0-9]{1,3})+_a.jpg" />
    </slide>
</slides>

Breakdown of ".([0-9]{1,3})+_q.jpg"

. <- provides matching of any alpha characters(letters) ie: matches "stills" in "stills20_q.jpg"

([0-9]{1,3}) <- provides matching of any number from 0 - 999 ie: matches "20" in "stills20_q.jpg"

+_q <- allows the script to determine if it is a question ie: "stills20_q.jpg" is a question, but "stills20_c" is not.

^ this can be any letter or combination of letters as long as the pattern is kept. For example:

<question format=".([0-9]{1,3})+a.jpg" /> - the question

<clue format=".([0-9]{1,3})+b.jpg" /> - the clue

<answer format=".([0-9]{1,3})+c.jpg" /> - the answer


The next example of a slides.xml is for a two part trivia question(question and answer):

<slides>
    <slide>
        <slide rating="R">
        <question format=".([0-9]{1,3})+_q.jpg" />
        <clue format="N/A" />
        <answer format=".([0-9]{1,3})+_a.jpg" />
    </slide>
</slides>


If your Q&A do not have any ordering numbers (ie slide1_q, the 1 is the ordering number) just use the following:

<slides>
    <slide>
        <slide rating="R">
        <question format=".+_a.jpg" />
        <clue format="N/A" />
        <answer format=".+_b.jpg" />
    </slide>
</slides>

Settings Explained

Trivia Slideshow

Special Videos

Movie Trailers

Feature Presentations

Home Automation

Miscellaneous

Integration

Home Automation Integration

Here the Home Automation feature will be explained.

Skin Integration

Skin Developers can integrate the starting of the script. Often the chosen location for such integration is in the DialogVideoInfo.xml file. There are two methods, the old way and the new Movie ID way.

Old Method(still valid for the Dharma/Eden versions of the script)

<control type="button" id="49">
    <description>Home Theatre</description>
    <include>ButtonInfoDialogsCommonValues</include>
    <label>Cinema</label>
    <onclick>Dialog.Close(MovieInformation)</onclick>
    <onclick>XBMC.RunScript(script.cinema.experience)</onclick>
    <visible>system.hasaddon(script.cinema.experience) + Container.Content(movies)</visible>
</control>


New Method(Frodo Version 3.0.1+)

<control type="button" id="49">
    <description>Home Theatre</description>
    <include>ButtonInfoDialogsCommonValues</include>
    <label>Cinema</label>
    <onclick>Dialog.Close(MovieInformation)</onclick>
    <onclick>XBMC.RunScript(script.cinema.experience,movieid=$INFO[ListItem.DBID])</onclick>
    <visible>system.hasaddon(script.cinema.experience) + Container.Content(movies)</visible>
</control>

Script Starting Methods

There are a few different arguments available to change the starting the script. This are mostly for starting from with-in a skin or from an outside source(remote). Each cause the script to behave differently.

Using the built-in RunScript Method often used in skins and keymaps

RunScript(script.cinema.experience,argument)

Using the JSON RPC Method

{"jsonrpc": "2.0", "method": "Addons.ExecuteAddon", "params": { "wait": false, "addonid": "script.cinema.experience", "params": [ "arguments" ] }, "id": 1}

Available Arguments

Window ID

This is primarily used to put the script into multiple feature mode, though it can be used for a single Movie. The user will need to queue the movies into a playlist(normal queuing methods are used, Q on a keyboard, 0 on a remote or from the context menu)

Possible window IDs to use:

movietitles
moviegenres
movieyears
movieactors
moviedirectors
moviestudios
moviesets
moviecountries
recentlyaddedmovies

These match the general quick library links available from the homepage.

eg.

RunScript(script.cinema.experience,movietitles)

This will open up the library using Movie Titles, with the script waiting for the set number of features to be queue.

Movie ID

This is a new method introduced in version 3.0.1 of the script, to replace the former method of starting the script from a skin. The former method(no arguments sent to the script) caused an unsightly jump in the Movie Library list. This was due to the method XBMC uses to queue a video. With Frodo, skins now can extract the database ID for the Movie(using $INFO[ListItem.DBID] ) This method also allow a known database ID to be sent. Multiple database IDs can be sent at the same time, causing the script to go into Multiple Feature mode(fixed in version 3.0.4). The database IDs need to be separated by a semi-colon(;)

eg.

RunScript(script.cinema.experience,movieid=$INFO[ListItem.DBID]) skin method
RunScript(script.cinema.experience,movieid=35) single movie database ID
{"jsonrpc": "2.0", "method": "Addons.ExecuteAddon", "params": { "wait": false, "addonid": "script.cinema.experience", "params": [ "movieid=35" ] }, "id": 1}
RunScript(script.cinema.experience,movieid=35;123;112) multiple movie database IDs
{"jsonrpc": "2.0", "method": "Addons.ExecuteAddon", "params": { "wait": false, "addonid": "script.cinema.experience", "params": [ "movieid=35;123;112" ] }, "id": 1}