| Привет, Гост |
Трябва да се регистрирате преди да може да публикувате на нашия сайт.
|
| Форумни статистики |
» Членове: 5,587
» Последен член: amb
» Форумни теми: 1,161
» Форумни публикации: 20,909
Пълна статистика
|
|
|
Инсталиране на "добавки" |
|
Публикувано от: Majide - 10-11-2015, 17:15 - Форум: Ръководства и полезни връзки
- Отговори (14)
|
 |
Ако устройството на което имате инсталиран Kodi е с достъп до интернет, тогава ще можете в пълна сила да разгърнете скрития потенциал на центъра за забавления (Kodi). Стандартно (без необходимост от интернет свързаност), той може да визуализира локално съдържание, намиращо се на твърд диск (вътрешен или външен), флаш памет, мемори карта, свързан смартфон, таблет или фотоапарат, както и да възпроизвежда споделено съдържание в рамките на локална мрежа (кабелна или безжична). Ако обаче осигурите на въпросното устройство интернет връзка, инсталацията на Kodi ще може да ви осигури достъп до стотици източници на видео по заявка (VoD), музика по заявка, разглеждане на изображения, дори четене на манга през вече любимото ви приложение - Kodi. Разглеждайки в официалното Addon хранилище или някое от неофициалните (създадени от фенове и ентусиасти), ще намерите богато разнообразие от допълнения за Kodi, наречени addon или на български "добавки" или още "приставки". Като аналогия може да ги оприличите със смарт приложенията за телевизори или смартфони. Естествено Kodi спокойно може да работи инсталиран директно и на смарт телевизор (с андроид) или на смартфон, таблет, компютър, STB или едноплатков компютър. Прегледайте описанието на дадена "добавка" и нейното лого за да се ориентирате за какво може да ви послужи тя. В българския Kodi Фен-Форум, има специален раздел за "добавките", които родни програмисти са създали специално за употреба в нашата страна. Изберете желаната от вас "добавка" и кликнете на бутона за инсталиране. Приставката (App-a) автоматично се изтегля и инсталира заедно със всички свои зависимости. Оттук насетне, Kodi ще има грижата да проверява за актуализации и да ги инсталира напълно автоматично. В случай, че сте инсталирали дадена "добавка" ръчно като ZIP файл, вероятно ще трябва и занапред да продължите да прилагате сами излезлите обновления. Инсталацията през хранилище винаги е за предпочитане, защото спестява много време и усилия от ваша страна. Как става всичко това на практика, може да видите на някое видео в YouTube, но се надявам това да не ви обърка повече, отколкото да ви ориентира.
? Използването на неофициалните хранилища опасно ли е
- ДА, носи малка степен на риск, че ZIP файловете могат да бъдат инфектирани с malware от трети лица с достъп до хранилището
? Какви тогава са вариантите, ако не намирам каквото търся в официалното хранилище
- Инсталирайте всичко ръчно (от ZIP файл), като вземате директно въпросните ъпдейти от самите разработчици (това е най-безопасният вариант);
- Инсталирайте си десетина или колкото искате малки хранилища (за всеки разработчик - неговото хранилище) и ще трябва да се доверите както на десетте разработчика, така и на хората стопанисващи техните хранилища (най-лош вариант);
- Инсталирайте си най-голямото неофициално хранилище, в което има почти всичко: SuperRepo и ще трябва да се доверите само на съответните разработчици и собственика на SuperRepo (компромисен вариант).
? Какво е официален addon
Официален е този addon, който е създаден от компанията предоставяща VOD услуги или друг вид електронна услуга, за която може да се създаде Kodi addon. Примери за официални addon-и са bgtime.tv (mytv.bg), Plex for Kodi и още няколко. Официалните addon-и са със сигурност 100% легални.
? Какво е неофициален addon
Неофициален addon е този, създаден от трета страна/лице, а не от компанията доставчик на съответна услуга. Стига функционалността на въпросния addon да не нарушава ToS (Terms of Service) на компанията "майка" за тази услуга, addon-нът не е нелегален, а допустим и влиза в категорията неофициални. Повечето от съществуващите разширения за Коди са именно такива. Примери: YouTube, Spotify, Netflix, Amazon Prime.
? Какво е нелегален addon
Това е неофициален addon, който предоставя безплатен/нерегламентиран достъп до съдържание или услуги - обект на неуредени авторски права или сродни на тях права. Актуален списък на нелегалните addon-и и хранилища , може да откриете в официалното wiki на Коди ... или поне така биха ви казали адвокатите, ако ги питате по въпроса. На практика нелегални addon-и няма, защото те по никакъв начин не нарушават или променят възможностите и правата на потребителите. Няма никаква разлика между достъпване на web сайт през интернет браузър или друго приложение от рода на Tapatalk или някакъв Kodi addon. След като компаниите създатели на браузърите не се държат отговорни за нелегалното достъпване на авторско съдържание през техните продукти, то същото се отнася и за създателите на Kodi добавки. Добавките функционират като web браузър и би следвало да се разглеждат като такива. Те не дават достъп до съдържание, което предварително да не е достъпно за останалите браузъри.
? Нелегален ли е неофициален addon, който нарушава ToS, въпреки, че не е вписан на страницата Banned_add-ons в официалното wiki на Коди;
Ако сте сигурни, че нарушава ToS - най-вероятно Да. Но е възможно и вие да грешите, защото ToS може да се тълкува по различни начини в и извън определен контекст.
Пожелавам Ви много приятни мигове с Kodi !
|
|
|
| Среда за разработка |
|
Публикувано от: Majide - 04-11-2015, 13:27 - Форум: Програмиране
- Отговори (1)
|
 |
Коя среда за разработка (IDE) предпочитате за работа върху Kodi addon's и др.?
Аз в момента съм заложил на Geany - лека, мултиплаформена с поддръжка на множество езици и GPL лиценз.
|
|
|
| [УРОК] Как да създадем video addon за Kodi Media Center |
|
Публикувано от: Majide - 02-11-2015, 19:10 - Форум: Програмиране
- Отговори (52)
|
 |
Kodi Media Center (познат още като XBMC) позволява разширяване на функционалността му чрез различни категории приставки (addons). Видео приставките позволяват да намирате и гледате видео, без да напускате интерфейса на Kodi. Този урок демонстрира как се създава такава приставка чрез елементарни знания по програмиране и логическо мислене.
/Готовата структура е съобразена с python2, а в Коди вече се използва python3 т.е. ще трябва да се съобразите с промяната в някои функции, методи и др. направени след прехода към новата версия на програмния език и с текущата версия на Коди/
Предварителни изисквания:
- да разполагате с инсталиран Kodi Media Center на компютъра, на който ще разработвате;
- да отделите поне два часа от времето си за вникване в методиката на програмиране.
Видео приставките за Kodi се пишат на езика python, както е посочено в kodi.wiki. За да започнем работа, първо изтеглете някаква среда за разработка/програмиране с поддръжка на python. Аз използвам DrPython, който освен текстов редактор със синтактично оцветяване на сорс кода, предлага възможност и за изпълнение/дебъгинг на python скриптове. Обикновения Notepad няма да ви е достатъчен, защото интерпретатора на python е супер чувствителен към отстъпите в началото на всеки ред и средата за разработка е хубаво да следи за неправилни indent-и. Изтеглете също и този примерен video addon, който създадох като отправна точка за целта на урока. Стартирайте Kodi и по обичайния начин инсталирайте в него пробната приставка plugin.video.example-0.0.1.zip. За да можем да превключваме от Kodi към другите прозорци, ще трябва да го демаксимизирате - това става с вълшебната команда '\' (наклонена на ляво черта) \намира се близо до бутона Ентър на клавиатурата\. Сега стартирайте средата за програмиране (DrPython в моя случай) и отворете в нея файла на примерната приставка: default.py (а къде се намира този файл? в потребителската директория на kodi/addons/plugin.video.example/default.py ). Отваряйки default.py ще видите следния примерен код:
Код: # -*- coding: utf-8 -*-
#Библиотеки, които използват python и Kodi в тази приставка
import re
import sys
import os
import urllib
import urllib2
...
elif mode==3:
print \"\"+url
PLAY(name,url,iconimage)
xbmcplugin.endOfDirectory(int(sys.argv[1]))
Също така през Notepad или подобен текстов редактор отворете лог файла на Kodi, който ще ни е необходим за откриване на грешките в процеса на тестване. Ще го откриете в директорията kodi/temp/kodi.log
Забележка: В посочените долу примери ще срещнете интернет адреси от вида h**p://server/link - да се четат http://server/link(форумната система автоматично съкращава връзките и те не могат да се видят целите)
Начало
1. Изберете подходящ сайт за създаването на видео приставка. Трябва да има богато и интересно съдържание, по възможност с разлистване по каталог, налична търсачка и еднакво структуриране на страниците, обложките, видеата и именованията им. Нека изберем сайта http://www.vplaybg.com. Видеата в него са разпределени по категории, с 24 заглавия на страница, налична търсачка и както вече споменахме еднакво структуриране - което ще направи правенето на приставката лесно. Ако страницата с желания от нас видеоклип е h**p://www.vplaybg.com/watch.php?vid=a2bc4d02b, тогава преглеждаме изходния й код през интернет браузър и се спираме на това:
Код: var flashvars = { "flashplayer": "http://www.vplaybg.com/players/jwplayer5/jwplayer.swf", "playlist": [{ file: 'http://www.vplaybg.com/videos.php?vid=a2bc4d02b', type: 'video', image: 'http://www.vplaybg.com/uploads/thumbs/a2bc4d02b-1.jpg'
Тук виждаме, че видеата се зареждат през адрес h**p://www.vplaybg.com/videos.php?vid= и същия идентификатор, като този от адреса на страницата a2bc4d02b. По същия начин стои въпросът с обложките на видеата. Ако знаем идентификатора на едно видео, тогава неговата обложка ще бъде h**p://www.vplaybg.com/uploads/thumbs/идентификатор-1.jpg
2. Създаване на главно меню на приставката. Въвеждаме в default.py от 24 ред надолу категориите от сайта по същия шаблон: addDir('Папка','h**p://www.example.com',1,'DefaultFolder.png')
Когато приключите, модула CATEGORIES трябва да изглежда по този начин:
Код: def CATEGORIES():
addDir('Търсене на видео','http://www.vplaybg.com/search.php?keywords=',2,searchicon)
addDir('Игрални филми','http://www.vplaybg.com/category.php?cat=filmi&page=1&order=DESC',1,'DefaultVideo.png')
addDir('Сериали','http://www.vplaybg.com/category.php?cat=SERIALI&page=1&order=DESC',1,'DefaultVideo.png')
addDir('Музика','http://www.vplaybg.com/category.php?cat=music&page=1&order=DESC',1,'DefaultAudio.png')
#addDir('','',1,'')
Преминете към прозореца на Kodi и тествайте добавката example - отворете я и нашето меню вече трябва да се вижда!
3. Разлистване на видеата. Ако опитате да отворите меню "Игрални филми", трябва да се случат следните неща:
- зареждане на подадения адрес на категория от модула CATEGORIES;
- претърсването му по зададен шаблон (регулярен израз);
- структуриране на резултатите по подходящ за Kodi начин;
- добавянето на всеки елемент към един общ списък, явяващ се съдържанието на тези виртуални директории.
Погледнете следния код в модула INDEXPAGES: match = re.compile('(.+?)').findall(data)
На мястото на (.+?) трябва да бъде поставен регулярен израз, способен да "хване" всичко необходимо: (заглавие, адрес на видеото или поне страницата му, обложка). Предвид удобното структуриране в този сайт, ние ще прихванем само името на видеото и неговото ID. По това ID сами ще конструираме адреса за зареждане на видеото и неговата обложка без изобщо да се налага да посещаваме и претърсваме страницата на отделното видео. И така, през интернет браузъра заредете сайта https://regex101.com и от левия му панел превключете на python. В голямото поле TEST STRING сложете целия изходен код на страницата каталог с игрални филми. В полето REGULAR EXPRESSION поставете vid=(.+?)" class="pm-title-link " title="(.+?)"> а в малкото поле в дясно от него буква " g". В панела в дясно MATCH INFORMATION трябва да видите следното:
![[Изображение: PhoenixBG_1.png]](http://uroci.net/uploads/Image/PhoenixBG_1.png)
т.е. регулярния израз е "хванал" необходимото ![[Изображение: default_smile.gif]](https://www.kaldata.com/forums/uploads/emoticons/default_smile.gif) Накратко регулярния израз е последователност от HTML (в случая) или др. тагове и (.+?) поставен на мястото, на което искаме да "хванем" полезни данни. Този регулярен израз поставяме в кода на приставката match = re.compile('vid=(.+?)" class="pm-title-link " title="(.+?)">').findall(data)
Конструирането адресът на обложката се налага, когато е възможно това и/или когато не сме прихванали пълния й адрес с регулярния израз. В случая, адресът на обложката (ред 46) ще стане thumbnail = 'h**p://www.vplaybg.com/uploads/thumbs/' + vid + '-1.jpg'
Понеже страниците с видеата са много повече от една, трябва някак да си осигурим преминаване към следващата страница през приставката. В сайта, това става чрез следните атрибути "закачени" към края на адресите &page=номернастраница&order=DESC . Order логично касае сортирането по азбучен ред или наопаки, а номера на страницата е ясен. Затова в първия модул CATEGORIES трябва да добавим &page=1&order=DESC към края на адресите на всички категории. По този начин просто ще актуализираме номера на текущата страница +1 и ще я подаваме на модула INDEXPAGES наново за преиндексиране. Всяка страница с изключение на последната съдържа точно 24 видеа. Т.е. ако списъка с заглавията във виртуалната директория на Kodi показва 24 видеа, тогава следваща страница с резултати трябва да има. За целта създаваме брояча br и му задаваме начална стойност 0. След всяко добавяне на ново видео към списъка в INDEXPAGES актуализираме брояча br = br + 1. След като приключи обхождането на текущата страница проверяваме колко са текущите видеа в брояча. Ако са точно 24, добавяме виртуална директория в края на списъка със заглавие "следваща страница>>" и конструираме адреса на тази следваща страница. Заменяме номера на текущата страница със следващия и после изпращаме към INDEXPAGES за индексиране. Намирането на текущата страница става отново с регулярен израз (.+?)&page=(.+?)&order=DESC по показаният отгоре начин. След като приключите работата по този модул, целия ще изглежда по следния начин:
Код: def INDEXPAGES(url):
req = urllib2.Request(url)
req.add_header('User-Agent', UA)
response = urllib2.urlopen(req)
#print 'request page url:' + url
data=response.read()
response.close()
#Начало на обхождането
br = 0 #Брояч на видеата в страницата - 24 за този сайт
match = re.compile('vid=(.+?)" class="pm-title-link " title="(.+?)">').findall(data)
for vid,title in match:
thumbnail = 'http://www.vplaybg.com/uploads/thumbs/' + vid + '-1.jpg'
#print thumbnail
#print title
addLink(title,vid,3,thumbnail)
br = br + 1 #добавяме и това видео към общия брояч
#Край на обхождането
#Ако резултатите са на повече от една страници
print 'Items counter: ' + str(br)
if br == 24: #тогава имаме следваща страница и конструираме нейния адрес
getpage=re.compile('(.+?)&page=(.+?)&order=DESC').findall(url)
for baseurl,page in getpage:
newpage = int(page)+1
url = baseurl + '&page=' + str(newpage) + '&order=DESC'
#print 'URL OF THE NEXT PAGE IS' + url
thumbnail='DefaultFolder.png'
addDir('следваща страница>>',url,1,thumbnail)
4. Търсачка. През вашия браузър потърсете думата word в търсачката на vplaybg.com. Адресът, който получавате е следния: h**p://www.vplaybg.com/search.php?keywords=word т.е. h**p://www.vplaybg.com/search.php?keywords=низ–за–търсене. В модул CATEGORIES поставете h**p://www.vplaybg.com/search.php?keywords= като адрес на търсачката. Отидете на ред 70, където започва модула на търсачката. Тук ние преконструираме адресът за търсене, за да бъде възможно преминаването към следващата страница с резултати searchurl = url + searchText + '&page=1&order=DESC' След като приключите, модулът ще изглежда така:
Код: def SEARCH(url):
keyb = xbmc.Keyboard('', 'Търсачка')
keyb.doModal()
searchText = ''
if (keyb.isConfirmed()):
searchText = urllib.quote_plus(keyb.getText())
searchText=searchText.replace(' ','+')
searchurl = url + searchText + '&page=1&order=DESC'
searchurl = searchurl.encode('utf-8')
#print 'SEARCHING:' + searchurl
INDEXPAGES(searchurl)
else:
addDir('Върнете се назад в главното меню за да продължите','','',"DefaultFolderBack.png")
5. Модул за зареждане на видео. За да можем да отваряме разлистените заглавия в Kodi, трябва да го "захраним" с подходящо конструирани данни. Основно трябват ни адреса на видеото, заглавието му и обложката. Разбира се, може да му подадете и много други данни, които сте успяли да извлечете с регулярните изрази (или от json в случай, че имате щастието да разчитате на официално API към сайта).
В случая трябва да конструираме финалния адрес за достъп до видеото, като към h**p://www.vplaybg.com/videos.php?vid= добавим ID-то на избраното видео. Ще получите това:
Код: def PLAY(name,url,iconimage):
url = 'http://www.vplaybg.com/videos.php?vid=' + url #Конструираме адреса за достъп до видеото
li = xbmcgui.ListItem(iconImage=iconimage, thumbnailImage=iconimage, path=url)
li.setInfo('video', { 'title': name })
try:
xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, xbmcgui.ListItem(path = url))
except:
xbmc.executebuiltin("Notification('Грешка','Видеото липсва на сървъра!')")
6. Подробностите. Най-важното са пуправките, извинете подробностите. Всеизвестен факт е, че външния вид продава, а характеристиките задържат потребителя във времето да не избяга към друг продукт. Стига толкова маркетинг. В същата директория като default.py отворете с Notepad или друг текстов редактор със синтактично оцветяване на XML файла addon.xml и го редактирайте според вашите нужди. Посочете желаното име на приставката, нейната версия, вашето име или прякор и описанието й. Като приключите, трябва да сте получили нещо такова:
Код: <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<addon id="plugin.video.vplaybg" name="VPLAYBG" version="0.0.1" provider-name="Majide">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
</requires>
<extension point="xbmc.python.pluginsource" library="default.py">
<provides>video</provides>
</extension>
<extension point="xbmc.addon.metadata">
<summary lang="bg">Приставка за съдържание при поискване от vplaybg.com</summary>
<summary lang="en">Addon for VOD from vplaybg.com</summary>
<description lang="bg">Приставка за съдържание при поискване от vplaybg.com. Препоръчително е използването на широколентова интернет връзка!</description>
<description lang="en">Addon for watching on demand videos from vplaybg.com. Broadband internet connection is recomended!</description>
<disclaimer lang="bg">Някои елементи на тази приставка, може да не са легални в държавата ви - проверете и инсталирайте на ваша отговорност.</disclaimer>
<disclaimer lang="en">Some parts of this addon may not be legal in your country of residence - please check with your local laws before installing.</disclaimer>
<language>bg,en</language>
<platform>all</platform>
<forum></forum>
<website></website>
<email></email>
</extension>
</addon>
Отворете също и changelog.txt за да посочите информация относно промените в тази версия на приставката.
Следва направа на обложка за приставката. С растерен или векторен графичен редактор по ваш избор (Gimp, Photoshop,...) направете желаната от вас обложка. Може да си вземете логото на сайта от въпросния сайт (ако той разполага с подходящо такова).
В същата тази директория на приставката plugin.video.example влезте в директория resources и изтрийте файла settings.xml и директорията language след като приставката няма да има настройки и няма да е мултиезична , а само на български език. Сега преименувайте директорията plugin.video.example на plugin.video.vplaybg. Затворете Kodi и го стартирайте отново (демаксимизиран, както беше и досега). Изпробвайте работоспособността на приставката и в случай на грешка, погледнете в дъното на лог файла kodi.log (който все още трябва да държите отворен). Там ще откриете подробности за грешката, ако има такава. Ако нямате грешки, остава да бъде изключено ненужното рапортуване в лога: в default.py коментирайте следните редове, поставяйки знак # преди командата print: 38,47,48,60,79.
|
|
|
|