Браузер Fork - Wiki:Fork Browser - Forkplayer.tv — различия между версиями

Материал из Браузер Fork - Wiki
Перейти к: навигация, поиск
(Пример прасера на Nodejs с обходом РКН через Tor на телефоне андроид c termux: новая тема)
м (Откат правок 77.232.38.88 (обсуждение) к версии Mentos)
(Метка: откат)
(не показано 39 промежуточных версий 10 участников)
Строка 1: Строка 1:
  
ForkPlayer — это прикладное программное обеспечение для просмотра fxml(Fork eXtensible Markup Language)-страниц в глобальной сети. ForkPlayer используют для запроса, обработки, манипулирования и отображения содержания [[FXML-сайт|fxml-сайтов]] а также для непосредственного просмотра содержания файлов плейлистов (m3u,xml,xspf), изображений (gif, jpeg, png), аудио-видео форматов (mp3, mpeg, mkv), потокового видео (udp, hls).
+
Fork Browser - это прикладное программное обеспечение для просмотра страниц, написанных на языке разметки FXML (Fork eXtensible Markup Language). Он используется для запросов, обработки, манипуляции и отображения содержимого [[FXML-сайт|fxml-сайтов]], а также для просмотра файлов плейлистов (m3u, xml, xspf), изображений (gif, jpeg, png), аудио-видео форматов (mp3, mpeg, mkv) и потокового видео (udp, hls).
  
В отличии от веб-сайтов,  [[FXML-сайт|FXML-порталам]] не нужна для навигации мышь или сенсорный экран, страницы просты в отображении и серфинге по ним с помощью кнопочного пульта, не требовательны к ресурсам и удобные для просмотра на телевизорах.
+
[[FXML-сайт|FXML-порталы]] отличаются от веб-сайтов тем, что для навигации не требуется мышь или сенсорный экран. Страницы легко отображаются и могут быть просмотрены с помощью кнопочного пульта. Они также экономичны в ресурсах и удобны для просмотра на телевизорах.
  
Создаются и размещаются  [[FXML-сайт|FXML-сайты]] аналогично веб-сайтам на своем сервере или хостинге со своим уникальным доменным именем, доступ происходит по протоколу HTTP ([[Files Headers For ForkPlayer]]).   
+
[[FXML-сайт|FXML-сайты]] создаются и размещаются так же, как и веб-сайты, на своем сервере или хостинге с уникальным доменным именем, доступ происходит по протоколу HTTP ([[Files Headers For ForkPlayer]]).   
  
 
С помощью [[FXML CMS]] создать свой fxml-портал может даже начинающий вебмастер.  
 
С помощью [[FXML CMS]] создать свой fxml-портал может даже начинающий вебмастер.  
Строка 12: Строка 12:
 
<br />
 
<br />
  
==История технических изменений ForkPlayer==
+
==У кого перестал запускаться Fork (проблема от августа 2023го)==
 +
 
 +
для исправления:
 +
 
 +
На старых самсунгах (orsay) заново зайти в смартхаб, открыть меню смартхаба (кнопкой TOOLS или если ее нету то нажать и удерживать там ОК) , в открывшемся меню выбрать IP синхронизация и ввести там IP 85.17.30.89
 +
 
 +
На самсунг tizen установите форк через установщик с ПК http://appfxml.com/
 +
 
 +
В Media Station X в start parameters прописываем: msx.appfxml.com
 +
 
 +
На андроидах скачайте новый apk отсюда http://appfxml.com/
 +
 
 +
На приставках Mag / Aura нужно прописать в адресе Портал
 +
 
 +
browser.appfxml.com
 +
 
 +
При запуске через браузер, то использовать новый адрес browser.appfxml.com
 +
 
 +
Если хочется временно возобновить работу старой версии форка, например для экспорта своих настроек, то можно поставить ДНС 85.17.30.89, 46.36.220.208, 46.36.222.114, через него временно может работать
 +
 
 +
==История технических изменений браузера Fork==
 
[[CHANGELOG]]
 
[[CHANGELOG]]
  
=='''Пользователям ForkPlayer'''==
+
=='''Пользователям браузера Fork'''==
[[Установить_ForkPlayer|'''Инструкции по установке ForkPlayer''']]
+
[http://forkplayer.tv/w/index.php?title=%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80_Fork_-_Wiki:%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C_%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80_Fork'''Инструкции по установке браузера Fork''']
  
  
[http://cloudflare.appinfo.su/ Хранилище закладок, загрузить плейлист в свой аккаунт в ForkPlayer]
+
[http://cloudflare.appinfo.su/ Хранилище закладок, загрузить плейлист в свой аккаунт в браузер Fork]
  
 
[[Настройка ForkPlayer]]
 
[[Настройка ForkPlayer]]
Строка 27: Строка 47:
 
[[RemoteFork|RemoteFork]]&nbsp;(Windows, Android)
 
[[RemoteFork|RemoteFork]]&nbsp;(Windows, Android)
  
[[Частые_проблемы_ForkPlayer|Частые проблемы ForkPlayer]]
+
[[Частые_проблемы_ForkPlayer|Частые проблемы браузера Fork]]
  
 
[[Проверка DNS серверов]]
 
[[Проверка DNS серверов]]
  
[[TODO|TODO]]&nbsp;- ошибки в ForkPlayer
+
[[TODO|TODO]]&nbsp;- ошибки в браузере Fork
  
 
<br />
 
<br />
 +
 +
=='''Просмотр торрентов'''==
 +
 +
[[Torrserve Fork]]
  
 
=='''Авторам / издателям'''==
 
=='''Авторам / издателям'''==
[[FXML CMS]] - Готовый портал под ForkPlayer на вашем хостинге
+
[[FXML CMS]] - Готовый портал под браузер Fork на вашем хостинге
  
 
[[DLE FXML]] - Модуль для популярной CMS Data Life Engine
 
[[DLE FXML]] - Модуль для популярной CMS Data Life Engine
Строка 44: Строка 68:
 
[[PHP JSON генерация страниц под ForkPlayer]]
 
[[PHP JSON генерация страниц под ForkPlayer]]
  
[[Формат_XML_и_M3U_страниц_ForkPlayer|Формат XML и M3U страниц ForkPlayer]]
+
[[Формат_XML_и_M3U_страниц_ForkPlayer|Формат XML и M3U страниц браузера Fork]]
  
[[Свой_DNS_сервер_Bind9_для_запуска_ForkPlayer|Свой DNS сервер Bind9 для запуска ForkPlayer]]
+
[[Свой_DNS_сервер_Bind9_для_запуска_ForkPlayer|Свой DNS сервер Bind9 для запуска Fork]]
  
 
=='''Владелец существующего вебсайта?'''==
 
=='''Владелец существующего вебсайта?'''==
Увеличьте аудиторию и ее лояльность сделав версию под ForkPlayer!
+
Увеличьте аудиторию и ее лояльность сделав версию под браузер Fork!
  
[[Сигнатуры ForkPlayer]] - по наличию GET параметра box_mac определяем что ваш сайт был открыт в ForkPlayer
+
[[Сигнатуры ForkPlayer]] - по наличию GET параметра box_mac определяем что ваш сайт был открыт в браузере Fork
  
===Пример готовых решений и структуры порталов под ForkPlayer===
+
===Пример готовых решений и структуры порталов под браузер Fork===
Модуль, если у вас сайт на DLE [[DLE FXML]]<br />Готовый простенький портал на PHP с авторизацией, поиском и выводом страниц в JSON https://github.com/alexkdpu/kino.pub_forkplayerPHP/blob/master/index.php
+
Модуль, если у вас сайт на DLE [[DLE FXML]]<br />Готовый простенький портал на PHP с авторизацией, поиском и выводом страниц в JSON https://github.com/vengo634/kino.pub_forkplayerPHP/blob/master/index.php
  
 
=='''От авторов / издателей'''==
 
=='''От авторов / издателей'''==
Строка 65: Строка 89:
  
 
[[Создать_свою_страницу_на_ForkPlayer_Wiki|Создать свою страницу на ForkPlayer Wiki]]&nbsp;- дополнить проект недостающей информацией!
 
[[Создать_свою_страницу_на_ForkPlayer_Wiki|Создать свою страницу на ForkPlayer Wiki]]&nbsp;- дополнить проект недостающей информацией!
 
== Пример прасера на Nodejs с обходом РКН через Tor на телефоне андроид c termux ==
 
 
 
 
 
termux
 
 
https://f-droid.org/ru/packages/com.termux/
 
 
---- install ubuntu
 
https://wiki.termux.com/wiki/PRoot
 
 
https://asciinema.org/a/355177
 
 
---- terminal ubuntu
 
 
sudo apt update
 
sudo apt install nodejs
 
sudo apt install npm
 
sudo apt install tor
 
 
sudo apt install obfs4proxy
 
 
-- if Failed to fetch http://ports.ubuntu.com/ubuntu-ports/pool/universe/o/obfs4proxy/obfs4proxy_0.0.8-1build2_arm64.deb
 
 
-- install optional from http://ports.ubuntu.com/ubuntu-ports/pool/universe/o/obfs4proxy/
 
 
TEMP_DEB="$(mktemp)" && wget -O "$TEMP_DEB" 'http://ports.ubuntu.com/ubuntu-ports/pool/universe/o/obfs4proxy/obfs4proxy_0.0.8-1_arm64.deb' && sudo dpkg -i "$TEMP_DEB"
 
rm -f "$TEMP_DEB"
 
 
---- https://zalinux.ru/?p=6049
 
 
Get tor bridges https://bridges.torproject.org/options/
 
 
Add works  bridges in '/etc/tor/torrc'    Ubuntu
 
 
----
 
 
https://www.npmjs.com/package/tor-request
 
 
npm install tor-request 
 
 
npm install pm2 -g   
 
 
---- Autostart tor + kinobase.js
 
 
add in 'etc/profile'  Ubuntu
 
 
pm2 start 'DIRname'/kinobase.js;
 
 
tor --ExitNodes {ua},{by},{am},{kz};
 
 
---- Autostart vnc server  with port:5901 and ip:192.168.1.xx
 
 
add in 'etc/profile' Ubuntu
 
 
rm -rf /tmp/.X1-lock;
 
 
rm -rf /tmp/.X11-unix/X1;
 
 
vncserver -localhost no;
 
 
<h1>kinobase.js</h1>
 
 
<pre>
 
const http  = require('http');
 
const https = require('https');
 
const tr = require('tor-request');
 
const hostname = '192.168.1.66';    // ip телефона в wifi
 
const port = 8001;                  // port
 
 
const server = http.createServer((req, res) => {
 
 
const headers = {
 
    'Access-Control-Allow-Origin': '*',
 
    'Access-Control-Allow-Methods': 'OPTIONS, POST, GET',
 
    'Access-Control-Allow-Headers': 'Accept, Content-Type',
 
    'Content-Type': 'text/html; charset=utf-8',
 
};
 
res.writeHead(200, headers);
 
 
function returnXml(a, b, c) {
 
if (!c)c = "";
 
  return  "<channel>\n\
 
          <title>" + a + " </title>\n\
 
          <stream_url>" + b + "</stream_url>\n\
 
          <description><div style='font-size:24px'>" + c + "</div>\n\
 
          </channel>\n";
 
}
 
 
  if (e = req.url.match(/getm3u8\/(.*?.)((\?|&)box_|$)/)) {
 
    var urlreq = decodeURI(e[1].toString());
 
    var com = "<items> \n"
 
    tr.request(urlreq, function(err, resTOR, body) {
 
      if (!err && resTOR.statusCode == 200) {
 
        const regexT = /<div class="data clearfix">(.*?)<div id="watch_block">/gms;
 
        while ((m = regexT.exec(body)) !== null) {
 
          com += returnXml('info', 0, ((m[1].replace(/(<([^>]+)>)|\n/gi, "")).trim()).replace(/\s\s\s+/gi, "<br>"))
 
        }
 
        const regf = /MOVIE_ID = (\d+).*?PLAYER_CUID = "(.*?)".*?IDENTIFIER = "(.*?)"/gms;
 
        while ((m = regf.exec(body)) !== null) {
 
          var idm = m[1];
 
          var CUID = m[2];
 
          var IDENTIFIER = m[3];
 
          var time = Math.floor(Date.now() / 100) + '00';
 
          var requrl = 'https://kinobase.org/user_data?page=movie&movie_id=' + idm + '&cuid=' + CUID + '&device=DESKTOP&_=' + time;
 
          tr.request(requrl, function(err, resTOR, body) {
 
            if (!err && resTOR.statusCode == 200) {
 
              const regs = /"vod_time":(\d+),"vod_hash":"(.*?)"/gms;
 
              while ((m = regs.exec(body)) !== null) {
 
                var vod_time = m[1];
 
                var vod_hash = m[2];
 
                time = Date.now();
 
                var vodurl = 'https://kinobase.org/vod/' + idm + '?identifier=' + IDENTIFIER + '&player_type=new&file_type=hls&st=' + vod_hash + '&e=' + vod_time + '&_=' + time;
 
                tr.request(vodurl, function(err, resTOR, body) {
 
                  if (!err && resTOR.statusCode == 200) {
 
                    let f;
 
                    var regex = /pl\|(.*?)\|/gm;
 
                    while ((m = regex.exec(body)) !== null) {f = JSON.parse(m[1])}
 
                    //Playlist
 
                    if (Array.isArray(f)) {
 
                      for (let x of f) {
 
                        if (x.playlist) { // have seasons
 
                          for (let y of x.playlist) {
 
                            var regex = /\[(.*?)\](.*?)(,|$)/gm; //  have  quality
 
                            while ((m = regex.exec(y.file)) !== null) {
 
                              if (/\{/.test(m[2])) {
 
                                var regex2 = /\{(.*?)\}(http.*?.mp4|http.*?.m3u8)\s+/gi; // have  translate
 
                                while ((v = regex2.exec(m[2])) !== null) {com += returnXml(x.comment + " " + y.comment + " " + m[1] + " " + v[1], v[2], 0);}
 
                              } else {
 
                                var regex2 = /(http.*?.mp4|http.*?.m3u8)\s+/gi; // without translate
 
                                while ((v = regex2.exec(m[2])) !== null) {com += returnXml(x.comment + " " + y.comment + " " + m[1], v[1], 0);}
 
                              }
 
                            }
 
                          }
 
                        } else { // no have seasons
 
                          var regex = /\[(.*?)\](.*?)(,|$)/gm;
 
                          while ((m = regex.exec(x.file)) !== null) {
 
                            var t = m[2]; //file
 
                            if (/\{/.test(t)) {
 
                              var regex2 = /\{(.*?)\}(http.*?.mp4|http.*?.m3u8)\s+/gi; // have  translate
 
                              while ((v = regex2.exec(t)) !== null) {com += returnXml(x.comment + " " + m[1] + " " + v[1], v[2], 0);}
 
                            } else {
 
                              var regex2 = /(http.*?.mp4|http.*?.m3u8)\s+/gi; // without translate
 
                              while ((v = regex2.exec(t)) !== null) {com += returnXml(x.comment + " " + m[1], v[1], 0);}
 
                            }
 
                          }
 
                        }
 
                      }
 
                    }
 
                    // not playlist
 
                    else {
 
                      var regex = /\[(.*?)\](.*?)(,|$)/gm;
 
                      while ((m = regex.exec(body)) !== null) {
 
                        var t = m[2]; //file
 
                        if (/\{/.test(t)) {
 
                          var regex2 = /\{(.*?)\}(http.*?.mp4|http.*?.m3u8)\s+/gi; // have translate
 
                          while ((v = regex2.exec(t)) !== null) {com += returnXml(m[1] + " " + v[1], v[2], 0);}
 
                        } else {
 
                          var regex2 = /(http.*?.mp4|http.*?.m3u8)\s+/gi; // without translate
 
                          while ((v = regex2.exec(t)) !== null) {com += returnXml(m[1], v[1], 0);}
 
                        }
 
                      }
 
                    }
 
                    com += "</items> \n"
 
                    res.write(com);
 
                    res.end();
 
                  }
 
                })
 
              }
 
            }
 
          })
 
        }
 
      }
 
    })
 
  }
 
});
 
 
server.listen(port, hostname, () => {console.log("Server running at "+hostname+":"+port);});
 
 
 
</pre>
 
<pre>
 
адрес для телевизора http://192.168.1.66:8001/getm3u8/https://kinobase.org/film/4756-radiovolna
 
</pre>
 

Версия 23:34, 21 ноября 2023

Fork Browser - это прикладное программное обеспечение для просмотра страниц, написанных на языке разметки FXML (Fork eXtensible Markup Language). Он используется для запросов, обработки, манипуляции и отображения содержимого fxml-сайтов, а также для просмотра файлов плейлистов (m3u, xml, xspf), изображений (gif, jpeg, png), аудио-видео форматов (mp3, mpeg, mkv) и потокового видео (udp, hls).

FXML-порталы отличаются от веб-сайтов тем, что для навигации не требуется мышь или сенсорный экран. Страницы легко отображаются и могут быть просмотрены с помощью кнопочного пульта. Они также экономичны в ресурсах и удобны для просмотра на телевизорах.

FXML-сайты создаются и размещаются так же, как и веб-сайты, на своем сервере или хостинге с уникальным доменным именем, доступ происходит по протоколу HTTP (Files Headers For ForkPlayer).

С помощью FXML CMS создать свой fxml-портал может даже начинающий вебмастер.

Спецификация разметки FXML для написания кода вручную.


У кого перестал запускаться Fork (проблема от августа 2023го)

для исправления:

На старых самсунгах (orsay) заново зайти в смартхаб, открыть меню смартхаба (кнопкой TOOLS или если ее нету то нажать и удерживать там ОК) , в открывшемся меню выбрать IP синхронизация и ввести там IP 85.17.30.89

На самсунг tizen установите форк через установщик с ПК http://appfxml.com/

В Media Station X в start parameters прописываем: msx.appfxml.com

На андроидах скачайте новый apk отсюда http://appfxml.com/

На приставках Mag / Aura нужно прописать в адресе Портал

browser.appfxml.com

При запуске через браузер, то использовать новый адрес browser.appfxml.com

Если хочется временно возобновить работу старой версии форка, например для экспорта своих настроек, то можно поставить ДНС 85.17.30.89, 46.36.220.208, 46.36.222.114, через него временно может работать

История технических изменений браузера Fork

CHANGELOG

Пользователям браузера Fork

Инструкции по установке браузера Fork


Хранилище закладок, загрузить плейлист в свой аккаунт в браузер Fork

Настройка ForkPlayer

Подключение архива iptv

RemoteFork (Windows, Android)

Частые проблемы браузера Fork

Проверка DNS серверов

TODO - ошибки в браузере Fork


Просмотр торрентов

Torrserve Fork

Авторам / издателям

FXML CMS - Готовый портал под браузер Fork на вашем хостинге

DLE FXML - Модуль для популярной CMS Data Life Engine

Files Headers For ForkPlayer - Обязательно настройте нужные заголовки ваших страниц

PHP JSON генерация страниц под ForkPlayer

Формат XML и M3U страниц браузера Fork

Свой DNS сервер Bind9 для запуска Fork

Владелец существующего вебсайта?

Увеличьте аудиторию и ее лояльность сделав версию под браузер Fork!

Сигнатуры ForkPlayer - по наличию GET параметра box_mac определяем что ваш сайт был открыт в браузере Fork

Пример готовых решений и структуры порталов под браузер Fork

Модуль, если у вас сайт на DLE DLE FXML
Готовый простенький портал на PHP с авторизацией, поиском и выводом страниц в JSON https://github.com/vengo634/kino.pub_forkplayerPHP/blob/master/index.php

От авторов / издателей

Dstore - магазин приложений, кинозалы, новостные и развлекательные порталы

Тем кто хочет помочь

Создать свою страницу на ForkPlayer Wiki - дополнить проект недостающей информацией!