API v2.2 & 2.3 Вопросы и обсуждение.

API sovok.tv

Re: API v2.2 & 2.3 Вопросы и обсуждение.

Сообщение sovok » 28 сен 2017, 00:27

Tarmik писал(а):Ещё одна проблема (#3):

при запросе epg туда попадает не только json, а что-то ещё - из-за чего vlc-record ругается.

Код: Выделить всё
27.09.2017 18:17:42.624: c:\prototyping\vlc2\vlc_record\ckartinaclnt.cpp / CKartinaClnt::GetEPG():649: Request EPG for Channel 235 ...
27.09.2017 18:17:42.634: c:\prototyping\vlc2\vlc_record\qiptvctrlclient.cpp / QIptvCtrlClient::get():307: id=4, type='String', url='http://api.sovok.tv/v2.3/json/epg?cid=235&day=230917'
27.09.2017 18:17:43.318: c:\prototyping\vlc2\vlc_record\qiptvctrlclient.cpp / QIptvCtrlClient::slotResponse():91: id=4, type='String', size=16815 bytes
27.09.2017 18:17:43.318: c:\prototyping\vlc2\vlc_record\ckartinaclnt.cpp / CKartinaClnt::slotStringResponse():92: Response for request 'REQ_EPG':
 ==8<==8<==8<==
<br />
<b>Notice</b>:  Undefined variable: time_start in <b>/home/vhosts/api.sovok.tv/v2.3/lib/api.class.php</b> on line <b>845</b><br />
<br />
<b>Notice</b>:  Undefined variable: time_start in <b>/home/vhosts/api.sovok.tv/v2.3/lib/api.class.php</b> on line <b>845</b><br />
<br />
<b>Notice</b>:  Undefined variable: time_line in <b>/home/vhosts/api.sovok.tv/v2.3/lib/api.class.php</b> on line <b>848</b><br />
<br />
<b>Notice</b>:  Undefined variable: time_line in <b>/home/vhosts/api.sovok.tv/v2.3/lib/api.class.php</b> on line <b>848</b><br />
{"epg":[{"progname":"\u041b\u043


Исправлено, проверьте, пожалуйста.
sovok
 
Сообщения: 26
Зарегистрирован: 16 мар 2012, 12:53

Re: API v2.2 & 2.3 Вопросы и обсуждение.

Сообщение Tarmik » 28 сен 2017, 19:55

sovok писал(а):Исправлено, проверьте, пожалуйста.


Работает, спасибо.
Tarmik
 
Сообщения: 18
Зарегистрирован: 20 сен 2017, 08:41

Re: API v2.2 & 2.3 Вопросы и обсуждение.

Сообщение Tarmik » 28 сен 2017, 19:57

sovok писал(а):
Tarmik писал(а):1. Вопрос: в REST API есть функция get_url - и согласно вашему API для неё нужен параметер gmt - т.е. ей надо указать текушее время.
На данный момент я так понимаю эта функция срабатывает и без gmt параметра, но online stream сразу же закаканчивается - в vlc-record примерно такие трайсы:

Всё существующее ПО работает на этом API. Пока ни у кого не возникло проблем с gmt. Из описания ясно, что gmt нужно использовать только для архива,для онлайн параметр не указывается. Это изначально было сделано для совместимости с API картины. При имеющемся выборе лучше использовать archive_next(2), если требуется архив.


Ок, так я и подумал что gmt это в принципе optional parameter. Но не работает все равно - ладно, попытаюсь ковырнуть глубже в протокол, что бы сказать что конкретно не работает.

Но тестировать можно на vlc-record, нажав online play (т.е. play кнопку, но не на те что в EPG / архиве).
Tarmik
 
Сообщения: 18
Зарегистрирован: 20 сен 2017, 08:41

Re: API v2.2 & 2.3 Вопросы и обсуждение.

Сообщение Tarmik » 28 сен 2017, 23:48

Tarmik писал(а):Но не работает все равно - ладно, попытаюсь ковырнуть глубже в протокол, что бы сказать что конкретно не работает.


Итак - vlc debug трайсы - playback через archive_next2 - включается нормально:

Код: Выделить всё
c:\prototyping\vlc2\modules\access\http.c(378):  access debug: no proxy
c:\prototyping\vlc2\modules\access\http.c(403):  access debug: http: server='ss.sovok.tv' port=8081 file='/?ticket=b357844fb5e854ef1724af3936cfa7518ed0ea43705901fe9faf890bc941c98ab4e274102f544ac37591d5e228514468bceec460320ae11ec9122659c050f2fad0fd60d43d3bcd42d84e82ab41dd2979a6a45397514f75c8477286277096f68fd53d86d80830cb65f1d839ed85967690b31591da4527a3e453547df564a2e635ce0e56867de6adb2c1e903c45e0184af4e2407f2240dbba13d8a2dae728d86bec15cc97f762dd96444e3bf55854fb0030ba4482139b6d92bf9745639'
c:\prototyping\vlc2\src\network\tcp.c(128):  access debug: net: connecting to ss.sovok.tv port 8081
'sovok_tv.exe' (Win32): Loaded 'C:\Prototyping\vlc2\bin\Debug_Win32_windows\plugins\access\libhttp_plugin.dll'. Symbols loaded.
'sovok_tv.exe' (Win32): Loaded 'C:\Windows\SysWOW64\WSHTCPIP.DLL'. Cannot find or open the PDB file.
'sovok_tv.exe' (Win32): Loaded 'C:\Windows\SysWOW64\wship6.dll'. Cannot find or open the PDB file.
'sovok_tv.exe' (Win32): Loaded 'C:\Program Files (x86)\Bonjour\mdnsNSP.dll'. Cannot find or open the PDB file.
'sovok_tv.exe' (Win32): Loaded 'C:\Windows\SysWOW64\FWPUCLNT.DLL'. Cannot find or open the PDB file.

c:\prototyping\vlc2\src\network\tcp.c(210):  access debug: connection succeeded (socket = 1972)
c:\prototyping\vlc2\modules\access\http.c(1257):  access debug: protocol 'HTTP' answer code 206
c:\prototyping\vlc2\modules\access\http.c(1420):  access debug: Server: nginx
c:\prototyping\vlc2\modules\access\http.c(1396):  access debug: Content-Type: video/mpeg
c:\prototyping\vlc2\modules\access\http.c(1333):  access debug: this frame size=1204512977
c:\prototyping\vlc2\modules\access\http.c(1354):  access debug: Connection: close
The thread 0x42fc has exited with code 0 (0x0).
c:\prototyping\vlc2\modules\access\http.c(1350):  access debug: stream size=1204512977,pos=0,remaining=1204512977
c:\prototyping\vlc2\src\modules\modules.c(319):  access debug: using access module "http"
c:\prototyping\vlc2\src\input\stream.c(398):  stream debug: Using stream method for AStream*
c:\prototyping\vlc2\src\input\stream.c(1415):  stream debug: starting pre-buffering
c:\prototyping\vlc2\src\input\stream.c(1456):  stream debug: received first data after 0 ms
c:\prototyping\vlc2\src\input\stream.c(1439):  stream debug: pre-buffering done 1024 bytes in 0s - 1000000 KiB/s
c:\prototyping\vlc2\src\modules\modules.c(233):  stream debug: looking for stream_filter module matching "any": zd candidates
'sovok_tv.exe' (Win32): Loaded 'C:\Prototyping\vlc2\bin\Debug_Win32_windows\plugins\access\libzip_plugin.dll'. Symbols loaded.
c:\prototyping\vlc2\src\modules\modules.c(323):  stream debug: no stream_filter modules matched
c:\prototyping\vlc2\src\modules\modules.c(233):  stream debug: looking for stream_filter module matching "record": zd candidates
c:\prototyping\vlc2\src\modules\modules.c(323):  stream debug: no stream_filter modules matched
c:\prototyping\vlc2\src\input\demux.c(90):  input debug: creating demux: access='http' demux='ts' location='ss.sovok.tv:8081/?ticket=b357844fb5e854ef1724af3936cfa7518ed0ea43705901fe9faf890bc941c98ab4e274102f544ac37591d5e228514468bceec460320ae11ec9122659c050f2fad0fd60d43d3bcd42d84e82ab41dd2979a6a45397514f75c8477286277096f68fd53d86d80830cb65f1d839ed85967690b31591da4527a3e453547df564a2e635ce0e56867de6adb2c1e903c45e0184af4e2407f2240dbba13d8a2dae728d86bec15cc97f762dd96444e3bf55854fb0030ba4482139b6d92bf9745639' file='\\ss.sovok.tv:8081\?ticket=b357844fb5e854ef1724af3936cfa7518ed0ea43705901fe9faf890bc941c98ab4e274102f544ac37591d5e228514468bceec460320ae11ec9122659c050f2fad0fd60d43d3bcd42d84e82ab41dd2979a6a45397514f75c8477286277096f68fd53d86d80830cb65f1d839ed85967690b31591da4527a3e453547df564a2e635ce0e56867de6adb2c1e903c45e0184af4e2407f2240dbba13d8a2dae728d86bec15cc97f762dd96444e3bf55854fb0030ba4482139b6d92bf9745639'
c:\prototyping\vlc2\src\modules\modules.c(233):  demux debug: looking for demux module matching "ts": zd candidates
'sovok_tv.exe' (Win32): Loaded 'C:\Prototyping\vlc2\bin\Debug_Win32_windows\plugins\demux\libts_plugin.dll'. Symbols loaded.
c:\prototyping\vlc2\modules\demux\ts.c(778):  demux debug: Force Seek Per Percent: PCR's not found,
c:\prototyping\vlc2\modules\demux\ts.c(1834):  demux warning: lost synchro
c:\prototyping\vlc2\modules\demux\ts.c(1858):  demux debug: skipping 173 bytes of garbage
c:\prototyping\vlc2\modules\demux\ts.c(951):  demux debug: pid[1011] unknown
c:\prototyping\vlc2\modules\demux\ts.c(951):  demux debug: pid[1012] unknown
c:\prototyping\vlc2\modules\demux\ts.c(951):  demux debug: pid[1014] unknown
c:\prototyping\vlc2\modules\demux\ts.c(951):  demux debug: pid[1010] unknown
c:\prototyping\vlc2\modules\demux\ts.c(4317):  demux debug: PATCallBack called
c:\prototyping\vlc2\modules\demux\ts.c(4329):  demux debug: new PAT ts_id=183 version=14 current_next=1
c:\prototyping\vlc2\modules\demux\ts.c(4409):  demux debug:   * number=1010 pid=1010
c:\prototyping\vlc2\modules\demux\ts.c(4020):  demux debug: PMTCallBack called
c:\prototyping\vlc2\modules\demux\ts.c(4070):  demux debug: new PMT program number=1010 version=1 pid_pcr=1011
c:\prototyping\vlc2\modules\demux\ts.c(4101):  demux debug:  * descriptor : registration CUEI


Итак - vlc debug трайсы - playback через get_url - выдает ошибку в playerе:

Код: Выделить всё
c:\prototyping\vlc2\modules\access\http.c(403):  access debug: http: server='ss.sovok.tv' port=8081 file='/?ticket=29fe7e0d84fc6ea3d13fef44cf402542faad7427d9964eb61d3d3d65ca797743593ed20dd75c84605ab41d4acc486d7c28677d8832d8bf713d40c39c6ff753a8c3ce24c566275a791ce13cb52f4678db767897c3a996fe9538d26b25ef04350d7b0312144c58d27bb2cf65c8ec74b98e367dab34069d1a24186fc90a75900d1d9d6ab15a806ce9ce4ec66212b611460fc862b9930e43b33c0fdf45bce2d9426d'
'sovok_tv.exe' (Win32): Loaded 'C:\Windows\SysWOW64\WSHTCPIP.DLL'. Cannot find or open the PDB file.
c:\prototyping\vlc2\src\network\tcp.c(128):  access debug: net: connecting to ss.sovok.tv port 8081
'sovok_tv.exe' (Win32): Loaded 'C:\Windows\SysWOW64\wship6.dll'. Cannot find or open the PDB file.
'sovok_tv.exe' (Win32): Loaded 'C:\Program Files (x86)\Bonjour\mdnsNSP.dll'. Cannot find or open the PDB file.
'sovok_tv.exe' (Win32): Loaded 'C:\Windows\SysWOW64\FWPUCLNT.DLL'. Cannot find or open the PDB file.
c:\prototyping\vlc2\src\network\tcp.c(210):  access debug: connection succeeded (socket = 1908)
c:\prototyping\vlc2\modules\access\http.c(1257):  access debug: protocol 'HTTP' answer code 403
c:\prototyping\vlc2\modules\access\http.c(1274):  access error: error: HTTP/1.1 403 Forbidden
c:\prototyping\vlc2\modules\access\http.c(426):  access debug: switching to HTTP version 1.0
c:\prototyping\vlc2\src\network\tcp.c(128):  access debug: net: connecting to ss.sovok.tv port 8081
c:\prototyping\vlc2\src\network\tcp.c(210):  access debug: connection succeeded (socket = 1908)
c:\prototyping\vlc2\modules\access\http.c(1257):  access debug: protocol 'HTTP' answer code 403
c:\prototyping\vlc2\modules\access\http.c(1274):  access error: error: HTTP/1.1 403 Forbidden
c:\prototyping\vlc2\src\modules\modules.c(323):  access debug: no access modules matched
c:\prototyping\vlc2\src\input\input.c(2301):  input error: open of `http/ts://ss.sovok.tv:8081/?ticket=29fe7e0d84fc6ea3d13fef44cf402542faad7427d9964eb61d3d3d65ca797743593ed20dd75c84605ab41d4acc486d7c28677d8832d8bf713d40c39c6ff753a8c3ce24c566275a791ce13cb52f4678db767897c3a996fe9538d26b25ef04350d7b0312144c58d27bb2cf65c8ec74b98e367dab34069d1a24186fc90a75900d1d9d6ab15a806ce9ce4ec66212b611460fc862b9930e43b33c0fdf45bce2d9426d' failed
c:\prototyping\vlc2\src\interface\dialog.c(116):  input error: Your input can't be opened
c:\prototyping\vlc2\src\interface\dialog.c:  input error: VLC is unable to open the MRL 'http/ts://ss.sovok.tv:8081/?ticket=29fe7e0d84fc6ea3d13fef44cf402542faad7427d9964eb61d3d3d65ca797743593ed20dd75c84605ab41d4acc486d7c28677d8832d8bf713d40c39c6ff753a8c3ce24c566275a791ce13cb52f4678db767897c3a996fe9538d26b25ef04350d7b0312144c58d27bb2cf65c8ec74b98e367dab34069d1a24186fc90a75900d1d9d6ab15a806ce9ce4ec66212b611460fc862b9930e43b33c0fdf45bce2d9426d'. Check the log for details.


Т.е. сервер отвечает ошибкой 403, когда в работающем состоянии приходит ошибка 206.

URL отличается -

Код: Выделить всё
работающий:
c:\prototyping\vlc2\modules\access\http.c(403):  access debug: http: server='ss.sovok.tv' port=8081 file='/?ticket=b357844fb5e854ef1724af3936cfa7518ed0ea43705901fe9faf890bc941c98ab4e274102f544ac37591d5e228514468bceec460320ae11ec9122659c050f2fad0fd60d43d3bcd42d84e82ab41dd2979a6a45397514f75c8477286277096f68fd53d86d80830cb65f1d839ed85967690b31591da4527a3e453547df564a2e635ce0e56867de6adb2c1e903c45e0184af4e2407f2240dbba13d8a2dae728d86bec15cc97f762dd96444e3bf55854fb0030ba4482139b6d92bf9745639'

не реботающий:
c:\prototyping\vlc2\modules\access\http.c(403):  access debug: http: server='ss.sovok.tv' port=8081 file='/?ticket=29fe7e0d84fc6ea3d13fef44cf402542faad7427d9964eb61d3d3d65ca797743593ed20dd75c84605ab41d4acc486d7c28677d8832d8bf713d40c39c6ff753a8c3ce24c566275a791ce13cb52f4678db767897c3a996fe9538d26b25ef04350d7b0312144c58d27bb2cf65c8ec74b98e367dab34069d1a24186fc90a75900d1d9d6ab15a806ce9ce4ec66212b611460fc862b9930e43b33c0fdf45bce2d9426d'

ответ сервера - не работающий кайс:
{"url":"http\/ts:\/\/ss.sovok.tv:8081\/?ticket=29fe7e0d84fc6ea3d13fef44cf402542faad7427d9964eb61d3d3d65ca797743593ed20dd75c84605ab41d4acc486d7c28677d8832d8bf713d40c39c6ff753a8c3ce24c566275a791ce13cb52f4678db767897c3a996fe9538d26b25ef04350d7b0312144c58d27bb2cf65c8ec74b98e367dab34069d1a24186fc90a75900d1d9d6ab15a806ce9ce4ec66212b611460fc862b9930e43b33c0fdf45bce2d9426d :network-caching=5000 :http-caching=5000 :no-http-reconnect :aspect-ratio=16:9","servertime":1506626868}

ответ сервера - работающий кайс:
{"archive":{"url":"http\/ts:\/\/ss.sovok.tv:8081\/?ticket=b357844fb5e854ef1724af3936cfa7518ed0ea43705901fe9faf890bc941c98ab4e274102f544ac37591d5e228514468bceec460320ae11ec9122659c050f2fad0fd60d43d3bcd42d84e82ab41dd2979a6a45397514f75c8477286277096f68fd53d86d80830cb65f1d839ed85967690b31591da4527a3e453547df564a2e635ce0e56867de6adb2c1e903c45e0184af4e2407f2240dbba13d8a2dae728d86bec15cc97f762dd96444e3bf55854fb0030ba4482139b6d92bf9745639 :network-caching=5000 :http-caching=5000 :no-http-reconnect :aspect-ratio=16:9","progname":"\u041c\u0443\u0436\u0441\u043a\u043e\u0435 \/ \u0416\u0435\u043d\u0441\u043a\u043e\u0435","start":"1506128700","end":"1506132000"},"servertime":1506627004}


Длина ticket больше в работающем кайсе, в неработающем короче, но смысла в этом hashе я не нахожу.

Может ticket как то обрезается неправильно ?
Tarmik
 
Сообщения: 18
Зарегистрирован: 20 сен 2017, 08:41

Re: API v2.2 & 2.3 Вопросы и обсуждение.

Сообщение sovok » 30 сен 2017, 21:51

403 ошибка может быть по двум причинам:
1) Не совпадает IP
2) После генерации тикета и его использования прошло много времени, более 5-ти минут

Так же хочу отметить, что остальное ПО, в том числе и просмотр через браузер работает на этом API.
sovok
 
Сообщения: 26
Зарегистрирован: 16 мар 2012, 12:53

Re: API v2.2 & 2.3 Вопросы и обсуждение.

Сообщение Tarmik » 01 окт 2017, 20:12

sovok писал(а):403 ошибка может быть по двум причинам:
1) Не совпадает IP
2) После генерации тикета и его использования прошло много времени, более 5-ти минут

Так же хочу отметить, что остальное ПО, в том числе и просмотр через браузер работает на этом API.


Я пробежался по коду ещё раз - и в обоих случаях (live play и archive play) используется один и тот же сервер, ss.sovok.tv port 8081.
В обоих случаях используется http post, и времени проходит доли секунды, но никак не 5 минут.

Может мы бы попробовали проанализировать траффик на двоих, можно соскайпиться / аудио, посмотреть http post логи и прочее.
Tarmik
 
Сообщения: 18
Зарегистрирован: 20 сен 2017, 08:41

Re: API v2.2 & 2.3 Вопросы и обсуждение.

Сообщение sovok » 06 окт 2017, 00:14

Покажите пример запроса, который вызывает проблемы.
sovok
 
Сообщения: 26
Зарегистрирован: 16 мар 2012, 12:53

Re: API v2.2 & 2.3 Вопросы и обсуждение.

Сообщение Tarmik » 09 окт 2017, 00:17

sovok писал(а):Покажите пример запроса, который вызывает проблемы.


В преведущих сообщениях описано, там два запроса - работающий и неработающий. Я добавил очень много debug информации, просто потому что я не понимаю что там проиходит, но если что не понятно - то можно смело игнорировать. Но http post data и URLы там кажется упомянуты.
Tarmik
 
Сообщения: 18
Зарегистрирован: 20 сен 2017, 08:41

Пред.

Вернуться в REST API

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1