Оценете темата:
  • 1 гласа - средно 5
  • 1
  • 2
  • 3
  • 4
  • 5
[УРОК] Как да създадем video addon за Kodi Media Center
#31
Виждам, че имаш няколко различни web player-а: player/cbplayer/, /player/pak_player/ и може би други. Различните плейъри, може да имат различен формат на конфигурационните настройки и заради това евентуално ще се наложи да адаптираш кода си първо да разпознава плейъра и според него да излича видео линка по различен начин.
[Изображение: notrobosmall.jpg]
Отговори
#32
сега идва друга грешка от редовете
PLAY(name,url,iconimage)
Отговори
#33
Не казваш каква е грешката. Явно трябва да хвърлям боб. Ако не подаваш никаква обложка на PLAY( ) можеш да махнеш iconimage навсякъде от функцията PLAY ( ). Ако грешката засяга името т.е. name на конкретното заглавие, вероятно се дължи на кодировката за нелатиница. Опитай с name.encode('utf-8', 'ignore')
[Изображение: notrobosmall.jpg]
Отговори
#34
извинявам се забравих да постна логът
Код:
Error Type: <type 'exceptions.KeyError'>
                                           Error Contents: ('clip',)
                                           Traceback (most recent call last):
                                             File "C:\Users\SonyVaio\AppData\Roaming\Kodi\addons\plugin.video.vplaybg\default.py", line 186, in <module>
                                               PLAY(name,url,iconimage)
                                             File "C:\Users\SonyVaio\AppData\Roaming\Kodi\addons\plugin.video.vplaybg\default.py", line 94, in PLAY
                                               li = xbmcgui.ListItem(iconImage=iconimage, thumbnailImage=iconimage, path=jsonrsp['clip']['url'])
                                           KeyError: ('clip',)
Отговори
#35
Грешката показва, че в json отговора, който получаваш при заявката към url адреса, не се съдържа ключът clip т.е. подредбата на данните е различна, вероятно защото плейърът е различен. Виж предишният ми отговор.
[Изображение: notrobosmall.jpg]
Отговори
#36
да с другата връзка ще трябва да използвам regex

src=(.+?)data-res(.+?)/>

Код:
<video id="cb_video_js" class="video-js vjs-default-skin" width="320px" height="240px" poster="http://192.168.0.116/files/thumbs/High.Res.02/1507360901c8cef-1.jpg" >
<source src='http://192.168.0.116/files/videos/High.Res.02/1507360901c8cef-480.mp4' type="video/mp4" data-res="480" />
<source src='http://192.168.0.116/files/videos/High.Res.02/1507360901c8cef-720.mp4' type="video/mp4" data-res="720" />
<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>
</video>
 
така правилно ли е?
Отговори
#37
Влез тук: https://regex101.com/r/ENBVAk/1 и виж, че първата capture group "хваща" повече информация, отколкото трябва. Можеш в този сайт да си настройваш и тестваш регулярните изрази лесно и безплатно. Има и легенда долу в десния ъгъл.
[Изображение: notrobosmall.jpg]
Отговори
#38
src='(.+?)' type="video/mp4" data-res="(.+?)" />
това ми дава връзки от тоя сорт мисля че е най добре

https://regex101.com/r/ENBVAk/2
Отговори
#39
Така е добре.
[Изображение: notrobosmall.jpg]
Отговори
#40
сега кодът как да го структурирам в def play
ето какво направих
Код:
def PLAY(name,url,iconimage):
       link = 'http://192.168.0.116/watch_video.php?v=' + url #Конструираме адреса за достъп до видеото
       nl = 0
        match = re.compile('src='(.+?)' type="video/mp4" data-res="(.+?)" />').findall(data)
        req = urllib2.Request(url)
       req.add_header('User-Agent', UA)
       response = urllib2.urlopen(req)
       #print 'request page url:' + url
       data=response.read()
       response.close()
        nl = nl + 1
       li = xbmcgui.ListItem(iconImage=iconimage, thumbnailImage=iconimage, path=nl)
       li.setInfo('video', { 'title': name })
       try:
            xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, xbmcgui.ListItem(int(sys.argv[1]), True, li))
       except:
            xbmc.executebuiltin("Notification('Грешка','Видеото липсва на сървъра!')")
и ето каква грешка ми дава
Код:
EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                            - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                           Error Type: <type 'exceptions.IndentationError'>
                                           Error Contents: ('unexpected indent', ('C:\\Users\\SonyVaio\\AppData\\Roaming\\Kodi\\addons\\plugin.video.vplaybg\\default.py', 90, 2, '\t\tmatch = re.compile(\'src=\'(.+?)\' type="video/mp4" data-res="(.+?)" />\').findall(data)\n'))
                                           IndentationError: ('unexpected indent', ('C:\\Users\\SonyVaio\\AppData\\Roaming\\Kodi\\addons\\plugin.video.vplaybg\\default.py', 90, 2, '\t\tmatch = re.compile(\'src=\'(.+?)\' type="video/mp4" data-res="(.+?)" />\').findall(data)\n'))
                                           -->End of Python script error report<--
22:17:48.788 T:6516   ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://plugin.video.vplaybg/
Отговори


Теми, които вероятно са свързани...
Тема: Автор Отговори: Прегледи: Последна публикация
  Addon за децата Majide 3 3,017 17-07-2021, 22:47
Последна публикация: martinstz
Bug Inputstream Adaptive Addon Majide 2 4,591 02-12-2018, 00:01
Последна публикация: Majide
  Kodi Text to Speech & Voice Assistant Majide 4 8,427 01-05-2017, 09:09
Последна публикация: Majide
Lightbulb Fork на Addon. Защо и Как? Majide 8 11,187 12-04-2017, 21:35
Последна публикация: Majide
Lightbulb Как да номерираме версията на Kodi addon? Majide 0 2,734 09-04-2017, 17:00
Последна публикация: Majide

Отваряне на: