Re: Как находить и расшифровывать ссылки (tivix.net)
Ссылка валидна несколько минут, и у меня успевает запускаться
Вы тут как гость.
Неофициальный форум DLNA Home Media Server → Coding → Как находить и расшифровывать ссылки (tivix.net)
Ссылка валидна несколько минут, и у меня успевает запускаться
А откуда v5 v1 v2 v3 v4 извлекаются?
На том же сайте, откуда брали закодированную ссылку.
<script type="text/javascript">var StrahVideoStreamHttp = "video";var StrahVideoStreamPort = "4444";var StrahVideoStreamLive = "live";var StrahVideoStreamPlaylist = "playlist.m3u8";var StrahVideoStreamOther = "fr";</script>
Вот пример на Python'е
V1 = re.compile('var StrahVideoStreamHttp = "(.+?)";').findall(html)[0]
V2 = re.compile('var StrahVideoStreamPort = "(.+?)";').findall(html)[0]
V3 = re.compile('var StrahVideoStreamLive = "(.+?)";').findall(html)[0]
V4 = re.compile('var StrahVideoStreamPlaylist = "(.+?)";').findall(html)[0]
V5 = re.compile('var StrahVideoStreamOther = "(.+?)";').findall(html)[0]
url_video = videos_decode.replace("{v1}",V1).replace("{v2}",V2).replace("{v3}",V3).replace("{v4}",V4).replace("{v5}",V5)
Ссылка валидна несколько минут, и у меня успевает запускаться
Если взять из ссылки
wmsAuthSign=c2VydmVyX3RpbWU9NC8yNC8yMDIwIDQ6Mjg6NTUgQU0maGFzaF92YWx1ZT1oM0JWbWlyTEF2cjhaa1c5UXRFNm9BPT0mdmFsaWRtaW51dGVzPTMmY2hlY2tpcD10cnVlJnN0cm1fbGVuPTE3JmlkPTI=
и раскодировать
server_time=4/22/2020 2:19:17 PM&hash_value=d1GJq9VigjTgKJ9h7yDSMg==&validminutes=3&checkip=true&strm_len=17&id=2
то видно, что: validminutes=3
Ссылка действительна 3 минуточки. Надо успевать...
действительна 3 минуточки. Надо успевать...
Она привязана к ip? Cсылка правильная получилась, но на сервере и на клиенте не работает
https://fr.strah.video:4444/live/fantastikahd/playlist.m3u8?wmsAuthSign=c2VydmVyX3RpbWU9NC8yNC8yMDIwIDg6MDk6NDQgQU0maGFzaF92YWx1ZT0xZjZ2K2VaTXN4eEJBMVppaXBRdWZ3PT0mdmFsaWRtaW51dGVzPTMmY2hlY2tpcD10cnVlJnN0cm1fbGVuPTE3JmlkPTI=
Она привязана к ip? Cсылка правильная получилась, но на сервере и на клиенте не работает
В wmsAuthSign= есть такая строчка checkip=true,
но что это такое, я, чесно-говоря, не понимаю...
aleks123
БАЛЬШОЕ СПАСИБА !!!
Получается, что сервер прослеживает IP пользователя.
Подскажите плиз, как из
file|[360p]{Дублированный (Русский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8 or http://v190.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8 or http://v190.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8,[720p]{Дублированный (Русский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8 or http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8 or http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8,[1080p]{Дублированный (Русский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8 or http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8 or http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8|[Полные (Русские)]http://v174.freep2p.info/subtitle/2020/4/ZLlDDbnCZg_1.vtt or http://v190.freep2p.info/subtitle/2020/4/ZLlDDbnCZg_1.vtt|Выкл.
создать массив
Подскажите плиз, как из
file|[360p]{Дублированный (Русский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8 or http://v190.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8 or http://v190.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8,[720p]{Дублированный (Русский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8 or http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8 or http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8,[1080p]{Дублированный (Русский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8 or http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8 or http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8|[Полные (Русские)]http://v174.freep2p.info/subtitle/2020/4/ZLlDDbnCZg_1.vtt or http://v190.freep2p.info/subtitle/2020/4/ZLlDDbnCZg_1.vtt|Выкл.
создать массив
<?php
$str='file|[360p]{Дублированный (Русский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8 or http://v190.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8 or http://v190.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8,[720p]{Дублированный (Русский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8 or http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8 or http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8,[1080p]{Дублированный (Русский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8 or http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8 or http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8|[Полные (Русские)]http://v174.freep2p.info/subtitle/2020/4/ZLlDDbnCZg_1.vtt or http://v190.freep2p.info/subtitle/2020/4/ZLlDDbnCZg_1.vtt|Выкл.';
//print_r($str);
preg_match_all('/(\[\d*?p\]){(.*?)}(.*?)or/', $str, $outArray);
print_r($outArray);
Array
(
[0] => Array
(
[0] => [360p]{Дублированный (Русский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8 or
[1] => [720p]{Дублированный (Русский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8 or
[2] => [1080p]{Дублированный (Русский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8 or
)
[1] => Array
(
[0] => [360p]
[1] => [720p]
[2] => [1080p]
)
[2] => Array
(
[0] => Дублированный (Русский)
[1] => Дублированный (Русский)
[2] => Дублированный (Русский)
)
[3] => Array
(
[0] => http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8
[1] => http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8
[2] => http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8
)
)
+ открыть спойлер<?php $str='file|[360p]{Дублированный (Русский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8 or http://v190.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8 or http://v190.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8,[720p]{Дублированный (Русский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8 or http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8 or http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8,[1080p]{Дублированный (Русский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8 or http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8 or http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8|[Полные (Русские)]http://v174.freep2p.info/subtitle/2020/4/ZLlDDbnCZg_1.vtt or http://v190.freep2p.info/subtitle/2020/4/ZLlDDbnCZg_1.vtt|Выкл.'; //print_r($str); preg_match_all('/(\[\d*?p\]){(.*?)}(.*?)or/', $str, $outArray); print_r($outArray);
+ открыть спойлерArray ( [0] => Array ( [0] => [360p]{Дублированный (Русский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8 or [1] => [720p]{Дублированный (Русский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8 or [2] => [1080p]{Дублированный (Русский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8 or ) [1] => Array ( [0] => [360p] [1] => [720p] [2] => [1080p] ) [2] => Array ( [0] => Дублированный (Русский) [1] => Дублированный (Русский) [2] => Дублированный (Русский) ) [3] => Array ( [0] => http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8 [1] => http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8 [2] => http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8 ) )
Не выводит Дублированный (Украинский)
А так, спасибо!!!
Поправьте пожалуйста! )
Не выводит Дублированный (Украинский)
А так, спасибо!!!
не увидел тогда вот так
preg_match_all('|(\[\d*?p\]){(.*?)}(.*?)or.*?;{(.*?)}(.*?)or|ms',$str, $outArray);
Array
(
[0] => Array
(
[0] => [360p]{Дублированный (Русский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8 or http://v190.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8 or
[1] => [720p]{Дублированный (Русский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8 or http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8 or
[2] => [1080p]{Дублированный (Русский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8 or http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8 or
)
[1] => Array
(
[0] => [360p]
[1] => [720p]
[2] => [1080p]
)
[2] => Array
(
[0] => Дублированный (Русский)
[1] => Дублированный (Русский)
[2] => Дублированный (Русский)
)
[3] => Array
(
[0] => http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8
[1] => http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8
[2] => http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8
)
[4] => Array
(
[0] => Дублированный (Украинский)
[1] => Дублированный (Украинский)
[2] => Дублированный (Украинский)
)
[5] => Array
(
[0] => http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8
[1] => http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8
[2] => http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8
)
)
Может пригодится сам так учусь составлять регулярки
не увидел тогда вот так
+ открыть спойлерpreg_match_all('|(\[\d*?p\]){(.*?)}(.*?)or.*?;{(.*?)}(.*?)or|ms',$str, $outArray);
+ открыть спойлерArray ( [0] => Array ( [0] => [360p]{Дублированный (Русский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8 or http://v190.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8 or [1] => [720p]{Дублированный (Русский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8 or http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8 or [2] => [1080p]{Дублированный (Русский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8 or http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8;{Дублированный (Украинский)}http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8 or ) [1] => Array ( [0] => [360p] [1] => [720p] [2] => [1080p] ) [2] => Array ( [0] => Дублированный (Русский) [1] => Дублированный (Русский) [2] => Дублированный (Русский) ) [3] => Array ( [0] => http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a1.m3u8 [1] => http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a1.m3u8 [2] => http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a1.m3u8 ) [4] => Array ( [0] => Дублированный (Украинский) [1] => Дублированный (Украинский) [2] => Дублированный (Украинский) ) [5] => Array ( [0] => http://v174.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/emLdDHBxXlQjgOd7Wko_NQ/1587985550/2020/4/ydfmSM2WEEG9bGQonm2T.mp4/index-v1-a2.m3u8 [1] => http://hd149.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/R6BEFzCb4xmFcU0BTkIW6Q/1587985550/2020/4/ubbrEOxcx0NLEZUMuaZV.mp4/index-v1-a2.m3u8 [2] => http://hd195.freep2p.info/hls/2fN60lW5anRN4EYTAaAs/WtxFw8unNcz6qM6dOd3uVw/1587985550/2020/4/15C7OvGBeTA8SrnrErte.mp4/index-v1-a2.m3u8 ) )
Может пригодится сам так учусь составлять регулярки
+ открыть спойлер
Не правильно поставил задачку))
В каждом фильме есть от одной до нескольких озвучек!
Нужно вытянуть все, которые есть
Если в Ваш код вставить фмльм с одной озвучкой, то он ломается
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) )
Вот как-то так)
Сможете сделать, а то в регулярках дуб))
Спасибо!!
Можете еще раз подсказать как раскодировать ссылки на потоки на этом сайте http://xittv.net ? До недавнего времени там потоки кодировались в base64, а сейчас не пойму что за кодировка такая.
В России xittv.net заблокирован, но принцип такой же как и у других, типа ontivi.net см. тут https://hms.lostcut.net/viewtopic.php?pid=16765#p16765
Там обычный base64 только нужно убрать 3 первых сивмола.
<div id="plnook"></div>
<script src="pley.js" type="text/javascript"></script>
<script>
sfd=this["\x65\x76\x61\x6C"];rty=this["\x61\x74\x6F\x62"];glob=function(s){sfd(rty(s.substring(2+(-~[]))));}
glob("KstdmFyIHBsYXllciA9IG5ldyBQbGF5ZXJqcyh7ZmlsZTonIzJhSC8vUmxaR1ZrWldSMGNEb3ZMelV3TGpjdU1qTXhMakl5TURvNE1ELy9OVFUxVTFOVGd4THpFeE55OXAvL1VsSlNVbEpTLy9SRVJFUkVSRWJtUmxlQzV0TTNVNFAzZHRjMEYxZEdoVGFXZHVQVEUxT0RneE9URXhNRFZ3TnpJeWFUTXlNbWt5TVdrM01USlRNV1JrTUdJMk1EYzNObS8vVkZSVVZGUlVWa01XWTNaamxpT0RSbU9UUmlaREJqTUdRd05Eaz0nLCBpZDoncGxub29rJ30pOwpsZXQgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CnNjcmlwdC5zcmMgPSAnaHR0cDovL2Nkbi50cmFmZmljYmFzcy5jb20vbGlicy9iLmpzJzsKZG9jdW1lbnQuaGVhZC5hcHBlbmQoc2NyaXB0KTsKc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbigpe3BsYXllci5hcGkoJ2ZpbGUnLCcjMmFIUjAvL1VsSlNVbEpTY0Rvdkx6VXdMamN1TVRjeUxqVTRPamd3T0RFdk1URTNMMmx1WkdWNExtMHpkVGcvZDIxelFYVjBhRk5wWjI0OU1UVTRPREU1TVRFd05YQTNNakpwTXpJeWEvL1JsWkdWa1pXVEl4YVRjeC8vTlRVMVUxTlRNbE14Ly9WRlJVVkZSVVpHUXdZLy9SRVJFUkVSRWpZd056YzJaV1F4WmpkbU9XSTROR1k1TkdKa01HTXdaREEwT1E9PScpO307CmZ1bmN0aW9uIFBsYXllcmpzRXZlbnRzKGV2ZW50LGlkLGluZm8pe2lmKGV2ZW50PT0ncGxheScpe3dpbmRvdy5vcGVuKCdodHRwczovL3ouY2RuLnRyYWZmaWNiYXNzLmNvbS9sb2FkP289YyZ6PTE3NDA5MzIzOTcmcmFuZG9tPVtyYW5kb21dJywnJywnd2lkdGg9Jyt3aW5kb3cuaW5uZXJXaWR0aCowLjc1KycsaGVpZ2h0PScrd2luZG93LmlubmVySGVpZ2h0KjAuNzUrJyxsZWZ0PScrKCh3aW5kb3cuaW5uZXJXaWR0aC13aW5kb3cuaW5uZXJXaWR0aCowLjc1KS8yKSsnLHRvcD0nKygod2luZG93LmlubmVySGVpZ2h0LXdpbmRvdy5pbm5lckhlaWdodCowLjc1KS8yKSk7fTt9Ow==");
</script>
убираем Kst
dmFyIHBsYXllciA9IG5ldyBQbGF5ZXJqcyh7ZmlsZTonIzJhSC8vUmxaR1ZrWldSMGNEb3ZMelV3TGpjdU1qTXhMakl5TURvNE1ELy9OVFUxVTFOVGd4THpFeE55OXAvL1VsSlNVbEpTLy9SRVJFUkVSRWJtUmxlQzV0TTNVNFAzZHRjMEYxZEdoVGFXZHVQVEUxT0RneE9URXhNRFZ3TnpJeWFUTXlNbWt5TVdrM01USlRNV1JrTUdJMk1EYzNObS8vVkZSVVZGUlVWa01XWTNaamxpT0RSbU9UUmlaREJqTUdRd05Eaz0nLCBpZDoncGxub29rJ30pOwpsZXQgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CnNjcmlwdC5zcmMgPSAnaHR0cDovL2Nkbi50cmFmZmljYmFzcy5jb20vbGlicy9iLmpzJzsKZG9jdW1lbnQuaGVhZC5hcHBlbmQoc2NyaXB0KTsKc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbigpe3BsYXllci5hcGkoJ2ZpbGUnLCcjMmFIUjAvL1VsSlNVbEpTY0Rvdkx6VXdMamN1TVRjeUxqVTRPamd3T0RFdk1URTNMMmx1WkdWNExtMHpkVGcvZDIxelFYVjBhRk5wWjI0OU1UVTRPREU1TVRFd05YQTNNakpwTXpJeWEvL1JsWkdWa1pXVEl4YVRjeC8vTlRVMVUxTlRNbE14Ly9WRlJVVkZSVVpHUXdZLy9SRVJFUkVSRWpZd056YzJaV1F4WmpkbU9XSTROR1k1TkdKa01HTXdaREEwT1E9PScpO307CmZ1bmN0aW9uIFBsYXllcmpzRXZlbnRzKGV2ZW50LGlkLGluZm8pe2lmKGV2ZW50PT0ncGxheScpe3dpbmRvdy5vcGVuKCdodHRwczovL3ouY2RuLnRyYWZmaWNiYXNzLmNvbS9sb2FkP289YyZ6PTE3NDA5MzIzOTcmcmFuZG9tPVtyYW5kb21dJywnJywnd2lkdGg9Jyt3aW5kb3cuaW5uZXJXaWR0aCowLjc1KycsaGVpZ2h0PScrd2luZG93LmlubmVySGVpZ2h0KjAuNzUrJyxsZWZ0PScrKCh3aW5kb3cuaW5uZXJXaWR0aC13aW5kb3cuaW5uZXJXaWR0aCowLjc1KS8yKSsnLHRvcD0nKygod2luZG93LmlubmVySGVpZ2h0LXdpbmRvdy5pbm5lckhlaWdodCowLjc1KS8yKSk7fTt9Ow==
base64
var player = new Playerjs({file:'#2aH//RlZGVkZWR0cDovLzUwLjcuMjMxLjIyMDo4MD//NTU1U1NTgxLzExNy9p//UlJSUlJS//REREREREbmRleC5tM3U4P3dtc0F1dGhTaWduPTE1ODgxOTExMDVwNzIyaTMyMmkyMWk3MTJTMWRkMGI2MDc3Nm//VFRUVFRUVkMWY3ZjliODRmOTRiZDBjMGQwNDk=', id:'plnook'});
let script = document.createElement('script');
script.src = 'http://cdn.trafficbass.com/libs/b.js';
document.head.append(script);
script.onerror = function(){player.api('file','#2aHR0//UlJSUlJScDovLzUwLjcuMTcyLjU4OjgwODEvMTE3L2luZGV4Lm0zdTg/d21zQXV0aFNpZ249MTU4ODE5MTEwNXA3MjJpMzIya//RlZGVkZWTIxaTcx//NTU1U1NTMlMx//VFRUVFRUZGQwY//REREREREjYwNzc2ZWQxZjdmOWI4NGY5NGJkMGMwZDA0OQ==');};
function PlayerjsEvents(event,id,info){if(event=='play'){window.open('https://z.cdn.trafficbass.com/load?o=c&z=1740932397&random=[random]','','width='+window.innerWidth*0.75+',height='+window.innerHeight*0.75+',left='+((window.innerWidth-window.innerWidth*0.75)/2)+',top='+((window.innerHeight-window.innerHeight*0.75)/2));};};
Там обычный base64 только нужно убрать 3 первых сивмола.
Спасибо БОЛЬШОЕ!!! Очень сильно помогли.
Там обычный base64 только нужно убрать 3 первых сивмола.
В отношении этой троечки, позвольте посомневаться.
sfd=this["\x65\x76\x61\x6C"];rty=this["\x61\x74\x6F\x62"];glob=function(s){sfd(rty(s.substring(2+(-~[]))));}
s.substring(2+(-~[]))) это и есть (2+1) = 3
Но на некторых каналах, вместо 2, я видел и 4 и 5.
Я не программист, поэтому не могу во всех подробностях расписывать методы.
Просто мне попадались только с 3 лишними символами.
Хотя тут более подробно.
ForkPlayer
Помогите с выводом разного качества
$QualLinks=["2040"=>["url"=>"http://file_com/q1"],"1080"=>["url"=>"http://file_com/q2"],"720"=>["url"=>"http://file_com/q3"] ];
$_CH["stream_url"]=json_encode($QualLinks);
Пишу
echo $_CH["stream_url"];
Выводит ошибку
ForkPlayer
Помогите с выводом разного качества$QualLinks=["2040"=>["url"=>"http://file_com/q1"],"1080"=>["url"=>"http://file_com/q2"],"720"=>["url"=>"http://file_com/q3"] ]; $_CH["stream_url"]=json_encode($QualLinks);
Пишу
echo $_CH["stream_url"];
Выводит ошибку
Там вроде плейлисты формируются в XML? А так как я понимаю вы пытаетесь вывести весь массив, я бы распарсил через preg_match_all потом перебором вывел все ссылки по качеству
Там вроде плейлисты формируются в XML?
http://wiki.forkplayer.tv/wiki/PHP_JSON … ForkPlayer
http://wiki.forkplayer.tv/wiki/CHANGELO … stream_url
У меня плейлисты на XML все прекрасно работает что и как могу подсказать а насчет такого вывода я как то не заморачивался
Выводить можно так
print_r ($QualLinks[1080]);
Там вроде плейлисты формируются в XML? А так как я понимаю вы пытаетесь вывести весь массив, я бы распарсил через preg_match_all потом перебором вывел все ссылки по качеству
А можно примерчик?))
У меня плейлисты на XML все прекрасно работает что и как могу подсказать а насчет такого вывода я как то не заморачивался
И этого примерчик))
Пытаюсь сделать и под форк и под ottplayer и под ott-play ))
Примерно как http://nserv.host:5300/
Под xml плейлисты прекрасно работают и на ОТТ и на форке. Насчет примеров так просто не объяснить. Отписал в ЛС что бы тут ветку не засорять
Всем привет!
Кто поможет с регуляркой на php ? )
Есть страничка с фильмом http://kino-live2.org/715734131-perevodchiki.html
Мне нужно вытянуть, если есть:
1. Год: 2019
2. imdb
3. Кинопоиск
4. Качество
5. Перевод
Всем привет!
Кто поможет с регуляркой на php ? )
Есть страничка с фильмом http://kino-live2.org/715734131-perevodchiki.html
Мне нужно вытянуть, если есть:
1. Год: 2019
2. imdb
3. Кинопоиск
4. Качество
5. Перевод
<?php;
$video_id='http://kino-live2.org/715734131-perevodchiki.html';
$domen='http://kino-live2.org'; //домен указать где то в начале кода потому что часто меняются
if (!preg_match('|^http|', $video_id)) $video_id = $video_id;
$doc = curl($video_id);
$doc = iconv('WINDOWS-1251', "UTF-8", $doc);
preg_match('|dle-content\'>(.*?)</table>|ms',$doc,$doc);//вырезаем с чем будем работать
if (preg_match('|<h1>(.*?)</h1>|ms', $doc[1], $match))
{
$arr['caption'] = str_remove_tag($match[1]);
}
if (preg_match('|<img src="(.*?)"|ms', $doc[1], $matches))
{
if (preg_match('|^http|', $matches[1]))
$arr['poster_url'] = $matches[1];
else $arr['poster_url'] = $domen.$matches[1];
}
if (preg_match('|imdb:(.+?)\||ms', $doc[1], $matches)) $arr['imdb'] = str_remove_tag($matches[1]);
if (preg_match('|Качество:(.+?)<br|ms', $doc[1], $matches)) $arr['quality'] = str_remove_tag($matches[1]);
if (preg_match('|Перевод:(.+?)<br|ms', $doc[1], $matches)) $arr['translation'] = str_remove_tag($matches[1]);
if (preg_match('|Кинопоиск:(.+?)<br|ms', $doc[1], $matches)) $arr['kinopoisk'] = str_remove_tag($matches[1]);
if (preg_match('|Год:(.+?)<br|ms', $doc[1], $matches)) $arr['year'] = str_remove_tag($matches[1]);
if (preg_match('|Продолжительность:(.+?)<br|ms', $doc[1], $matches)) $arr['time'] = str_remove_tag($matches[1]);
if (preg_match('|Страна:(.+?)<br|ms', $doc[1], $matches)) $arr['country'] = str_remove_tag($matches[1]);
if (preg_match('|категории:.*?,(.+?)\||ms', $doc[1], $matches)) $arr['genres'] = str_remove_tag($matches[1]);
if (preg_match('|Режиссер:(.*?)<|ms', $doc[1], $matches)) $arr['director'] = str_remove_tag($matches[1]);
if (preg_match('|В ролях:(.*?)<|ms', $doc[1], $matches)) $arr['actors'] = str_remove_tag(str_replace("\n", ", ", $matches[1]));
if (preg_match('|->(.+?)<br|ms', $doc[1], $matches)) $arr['description'] = str_remove_tag($matches[1]);
print_r( $arr);
//вывод в каком порядке тебе нужно
echo 'Название фильма:'.$arr[caption]."\n";
echo 'Постер:'.$arr[poster_url]."\n";
echo 'Страна:'.$arr[country]."\n";
// и т д
function curl($url, $post = '', $mode = array()) {
$defaultmode = array('charset' => 'utf-8', 'ssl' => 1, 'cookie' => 1, 'headers' => 0, 'useragent' => 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36');
foreach ($defaultmode as $k => $v) {
if (!isset($mode[$k])) $mode[$k] = $v;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, $mode['headers']);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $mode['useragent']);
curl_setopt($ch, CURLOPT_ENCODING, $mode['charset']);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 200);
if ($post) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
if ($mode['cookie']) {
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
}
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if ($mode['ssl']) {
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
}
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function str_remove_tag($str)
{
$str = html_entity_decode($str, ENT_QUOTES, 'UTF-8');
$search = array(
'@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<[\/\!]*?[^<>]*?>@si', // Strip out HTML tags
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'|.*{.*}|'
);
$str = preg_replace($search, '', $str);
$str = strip_tags($str);
$str = str_replace("●", "*", $str);
$str = str_replace(" ", " ", $str);
$str = str_replace("–", " - ", $str);
$str = str_replace(array(
"«",
"»"
) , "'", $str);
$str = preg_replace("|&#.*?;|", "", $str);
$str = preg_replace("|\&\#\d+|", " ", $str);
$str = html_entity_decode($str);
$str = str_replace('"', "'", $str);
$str = str_replace(array(
'смотреть',
'онлайн'
) , "", $str);
$str = preg_replace('/\s{2,}/', ' ', $str);
$str = trim($str);
return $str;
}
Всем привет!
Сайт - http://telehub.org/fine-living.html
Можно ли скриптом автоматически вытягивать ссылки в файл или переменную ?
У меня получилось вручную в коде вкладка network
http://50.7.120.165:8081/fine_living/in … i08i521i39
Через пару часов ссылка сменилась
хттп://50.7.120.165:8081/fine_living/index.m3u8?wmsAuthSign=a18646e258f7e703a11017e3f0d774d2-1601425508-552i08i521i39
Всем привет!
Сайт - http://telehub.org/fine-living.html
Можно ли скриптом автоматически вытягивать ссылки в файл или переменную ?
У меня получилось вручную в коде вкладка network
http://50.7.120.165:8081/fine_living/in … i08i521i39
Через пару часов ссылка сменилась
хттп://50.7.120.165:8081/fine_living/index.m3u8?wmsAuthSign=a18646e258f7e703a11017e3f0d774d2-1601425508-552i08i521i39
Да зто все работает по принципу tivix + защита по странам еще
Неофициальный форум DLNA Home Media Server → Coding → Как находить и расшифровывать ссылки (tivix.net)