Jen

1 Introduction to Jen

1.1 What is Jen?

Jen is an addon written by a long time Kodi Developer. It is free to use and has universalscrapers integrated into it. This addon does not host any of the content which is found and has no affiliation with any of the content providers. This addon simply searches websites for content. Use at your own risk!

2 How to Install Jen

2.1 Watch the Videos to Make a Jen Addon

2.1.1 Video to Make a Jen

  • To learn how to make a Jen addon, watch the video here

2.1.2 Video to Make XML's

  • To learn how to make XML's for Jen, watch the video here

2.2 Follow the Instructions to Make a Jen Addon

2.2.1 Add an Icon

  • Add an icon to the main jen folder.
  • It should be 512 x 512 and it must be called icon.png

2.2.2 Add Fanart

  • Add fanart to the main jen folder
  • It should be 1920 x 1080 and must be called fanart.jpg

2.2.3 Changing the addon.xml

  • Change the addon id and name and anything else you need to suit your addon.

2.2.4 Change the name of the folder

  • Change the name of the folder from plugin.video.jen to the addon id in your addon.xml

2.2.5 Changing the settings.xml

  • Open resources/settings.xml
  • Change plugin.video.jen to the addon id in your addon.xml
  • Add your apis to each default=""
<setting label="TVDb api key" type="text" id="tvdb_api_key" option="hidden" default="" visible="eq(-3,true)"/>
<setting label="TMDb api key" type="text" id="tmdb_api_key" option="hidden" default="" visible="eq(-4,true)"/>
<setting label="Trakt client id" type="text" id="trakt_api_client_id" option="hidden" default="" visible="eq(-5,true)"/>
<setting label="Trakt client secret" type="text" id="trakt_api_client_secret" option="hidden" visible="!eq(-1,8b3c509d7ae20fb31efcf95a7f030da562c37a8f0d9cd100db6ac1a41970f8ac) + eq(-6,true)" default=""/>
<setting label="Last.fm api key" type="text" id="lastfm_api_key" option="hidden" default="" visible="eq(-7,true)"/>
<setting label="Last.fm secret" type="text" id="lastfm_secret" option="hidden" visible="!eq(-1,3ec34c514a9230ebf006c8e24a8419d6) + eq(-8,true)" default=""/>

2.2.6 Changing the strings.po

  • Open resources/language/English/strings.po
  • Change the top 3 lines to reflect your addon

2.2.7 Fill out the variables in the default.py

  • Fill out these lines in the default.py
  • Url of the root xml file is required and at least a trakt or a tmdb api is required
root_xml_url = "http://"  # url of the root xml file
__builtin__.tvdb_api_key = ""  # tvdb api key
__builtin__.tmdb_api_key = ""  # tmdb api key
__builtin__.trakt_client_id = ""  # trakt client id
__builtin__.trakt_client_secret = ""  # trakt client secret
__builtin__.search_db_location = ""  # location of search db

3 How to Get API Keys for Jen

3.1 TMDB

  • You can get a TMDB Api by following the instructions in this video
  • Use google.com for url

3.2 TRAKT

  • You can get a Trakt Api by clicking here
  • Use google.com for url

3.3 TVDB

  • You can get a TVDB Api by clicking here
  • May need to be signed in to your account to access this page

4 Upgrading Jen

  • Slide over your icon, fanart, strings.po, settings.xml and addon.xml to the new version
  • Copy over the configuration variables in your default.py
  • Up your addon.xml version number (if required)
  • Zip up the new folder and add the correct version number to the end eg. plugin.video.jen-1.1.zip
  • Push out new version

5 Jen Plugins

5.1 How to Add a Plugin

  • Plugins are found in resources/lib/plugins.
  • The plugin.py can be found in resources/lib/util
  • You can see where you can overwrite default behaviour. If there are any other useful ones, open an issue.

5.2 Using Trakt Plugin

5.2.1 How to Add a Trakt List

<dir>
<title></title>
<trakt></trakt>
</dir>
  • See the trakt.py for examples

5.2.2 How to Find Lists in Trakt that Belong to Others

  1. Go to search and type what you're looking for eg. War
  2. Click on Lists on the left
  3. Open a list
  4. Copy the url and add the .api and /items (see "How to Add an Individual Trakt List to your XML above)

5.2.3 How to Fix Trakt Lists that Aren't Showing

  1. Make sure the trakt url is correct.
  2. If your list is private (or account is private), then you need to make both public.
  3. Make sure you have trakt apis in default.py and settings.xml
  4. Make sure the plugins folder has the unidecode folder.
  5. Make sure you have the TMDB Api in default.py as well. If you don't want to get a TMDB Api you will need to go to resources/lib/plugins/trakt.py and change line 113 from
  6. Make sure you have the trakt/tmdb api key. Sometimes they get cancelled or expired.
SKIP_TMDB_INFO = False to SKIP_TMDB_INFO = True 
**Note this will let you open lists but you will not have artwork**

5.3 Using TMDB Plugin

5.3.1 How to Add a TMDB List

<dir>
<title></title>
<tmdb></tmdb>
</dir>
  • See the TMDB.py for examples.

5.3.2 How to Fix TMDB Lists that Aren't Showing

  1. Make sure the tmdb url is correct.
  2. Make sure you have tmdb apis in default.py
  3. Make sure the plugins folder has the unidecode folder.
  4. Make sure you have the trakt/tmdb api key. Sometimes they get cancelled or expired.

5.4 Using IMDB Plugin

5.4.1 How to Add an IMDB List

<dir>
<title></title>
<imdburl></imdburl>
</dir>

6 Hosting

6.1 Using Github for Hosting

6.1.1 How to get Raw URL

  • Click on the file you want the url for.
  • Click on the raw icon.
  • Copy the url in the address bar.

6.2 Using Pastebin for Hosting - Help Video

6.2.1 How to get Raw URL

  • Click on the file you want the url for.
  • Click on the raw icon.
  • Copy the url in the address bar.

7 How to Add Search to Jen

7.1 Trakt

<dir>
  <title>Search Trakt</title>
  <trakt>search</trakt>
</dir>

7.2 TMDB

<dir>
  <title>Search TMDB</title>
  <tmdb>search</tmdb>
</dir>

7.3 IMDB

<dir>
  <title>Search IMDB</title>
  <imdburl>search</imdburl>
</dir>

8 XML Formats for Jen

  • You can find all formats in xml/other/jenformats.xml

9 Adding Customized Icons

  • Add these to your main.xml in order to add these icons to your startup screen.
  • Just change plugin.video.jen to your addon id

9.1 Settings

<plugin>
<name>30701</name>
<link>plugin://plugin.video.jen/?action=openSettings</link>
<thumbnail></thumbnail>
</plugin>

9.2 Search

<plugin>
<name>30702</name>
<link>plugin://plugin.video.jen/?action=search</link>
<thumbnail></thumbnail>
</plugin>

9.3 Testings

<plugin>
<name>Testings</name>
<link>plugin://plugin.video.jen/?action=developer</link>
<thumbnail></thumbnail>
</plugin>

10 Using Testings in Jen - Video

  • On your main.xml add the following
<plugin>
<name>Testings</name>
<link>plugin://plugin.video.**youraddonname**/?action=developer</link>
<thumbnail></thumbnail>
</plugin>
  • Go to xml/other and copy the testings.xml This is just a sample you can add whatever you want
  • Paste it in
kodi/userdata/addon_data/plugin.video.**youraddonname**
  • Then in kodi open your addon and you will see a new icon called Testings
  • Click it and whatever you have in the testings.xml will show
  • To test something new, just change the testings.xml and save
  • Then go back one screen in kodi and back in and you will see the changes

11 Make a Player for Metalliq - Help Video

  • Go to xml/other and grab the direct.addonname.dab.metalliq.json file
  • Use this link to watch the full video on how to make.

12 Turn off the Rainbow Coloured Text

  • go to resources/lib/plugins and delete rainbow.py

13 Make a Search Database of Jen

  • Only works if you have actual movie and tv xmls made
  • Make sure you have Python 3 installed and pip install requests
  • Open the jensearchdb.py
  • Change line 269 to the url for your main.xml
  • Change line 271 'jen' to whatever name you want the search.xml to be called. In this case it will be jen.xml
  • Change line 272 to the url for your section.xml. This is handy if you don't want to compile your entire url. You can use subsections. (If however you want the entire folder added to search type in the main.xml url here again)
  • Change line 273 'Jen' to whatever you want it to output for name in the search on your addon. (If for example you choose The Avengers(provided you have that movie) the search will display: Jen - The Avengers)
  • Change line 277 to be folder where you want the xml and db file to output to
  • Change line 278 to be folder where you want the xml and db file to output to
  • Change line 290 to be folder where you want the xml and db file to output to but only up to the output
  • Save the file.
  • Next make a folder and save this py file. Add a folder called "output" (without the "")
  • Open a text editor and make an empty file called search.db and slide it in the output folder.
  • Open the jensearch.py in idle or another program that runs py files. Run it.
  • The results are then sent to the output folder you made that you directed the py to.
  • Slide the db file onto your server.
  • Open the default.py for your addon and add the search.db url to
"__builtin__.search_db_location"

14 Changing List Colours

  • You can change a list colour for trakt and tmdb lists by opening the py files and changing the <title> colour.
  • Only the title above the meta tag needs changing. See below. Change blue to whatever colour you want.
Movies

    xml = "<item>" \
          "<title>[COLOR blue]%s[/COLOR]</title>" \
          "<meta>" \
          "<content>movie</content>" \
          "<imdb>%s</imdb>" \
          "<title>%s</title>" \
          "<year>%s</year>" \
          "</meta>" \
          "<link>" \
          "<sublink>search</sublink>" \
          "<sublink>searchsd</sublink>" \
          "</link>" \
          "<thumbnail>%s</thumbnail>" \
          "<fanart>%s</fanart>" \
          "</item>" % (title, imdb, title, year, thumbnail, fanart)
    return xml

TV Show

    xml = "<dir>"\
          "<title>[COLOR blue]%s[/COLOR]</title>"\
          "<meta>"\
          "<content>tvshow</content>"\
          "<imdb>%s</imdb>"\
          "<tvshowtitle>%s</tvshowtitle>"\
          "<year>%s</year>"\
          "</meta>"\
          "<link>trakt_tv_show(%s, %s, %s, %s, %s)</link>"\
          "<thumbnail>%s</thumbnail>" \
          "<fanart>%s</fanart>" \
          "</dir>" % (title, imdb, title, year, trakt_id, year, title, tmdb,
                      imdb, thumbnail, fanart)
    return xml

TV Seasons

    xml = "<dir>"\
          "<title>[COLOR blue]Season %s[/COLOR]</title>"\
          "<meta>"\
          "<imdb>%s</imdb>"\
          "<content>season</content>"\
          "<season>%s</season>"\
          "</meta>"\
          "<link>trakt_season(%s,%s, %s, %s, %s, %s)</link>"\
          "<thumbnail>%s</thumbnail>" \
          "<fanart>%s</fanart>" \
          "</dir>" % (season, imdb, season, trakt_id, season, year,
                      tvtitle, tmdb,
                      imdb, thumbnail, fanart)
    return xml

TV Episodes

    xml = "<item>"\
          "<title>[COLOR blue]%s[/COLOR]</title>"\
          "<meta>"\
          "<content>episode</content>"\
          "<imdb>%s</imdb>"\
          "<tvshowtitle>%s</tvshowtitle>"\
          "<year>%s</year>"\
          "<title>%s</title>"\
          "<premiered>%s</premiered>"\
          "<season>%s</season>"\
          "<episode>%s</episode>"\
          "</meta>"\
          "<link>"\
          "<sublink>search</sublink>"\
          "<sublink>searchsd</sublink>"\
          "</link>"\
          "<thumbnail>%s</thumbnail>" \
          "<fanart>%s</fanart>" % (
              title, imdb, tvtitle, year, title,
              premiered, season, episode,
              thumbnail, fanart)
    xml += "</item>"
    return xml