Git Product home page Git Product logo

torrserver's Introduction


Simple and powerful tool for streaming torrents.

GitHub Go Reference CodeFactor Build GitHub tag (latest SemVer pre-release)

Introduction

TorrServer is a program that allows users to view torrents online without the need for preliminary file downloading. The core functionality of TorrServer includes caching torrents and subsequent data transfer via the HTTP protocol, allowing the cache size to be adjusted according to the system parameters and the user's internet connection speed.

Features

  • Caching
  • Streaming
  • Local and Remote Server
  • Viewing torrents on various devices
  • Integration with other apps through API
  • Cross-browser modern web interface
  • Optional DLNA server

Getting Started

Installation

Download the application for the required platform in the releases page. After installation, open the link http://127.0.0.1:8090 in the browser.

Windows

Run TorrServer-windows-amd64.exe.

Linux

Run in console

curl -s https://raw.githubusercontent.com/YouROK/TorrServer/master/installTorrServerLinux.sh | sudo bash

macOS

Run in Terminal.app

curl -s https://raw.githubusercontent.com/YouROK/TorrServer/master/installTorrServerMac.sh -o installTorrserverMac.sh && chmod 755 installTorrServerMac.sh && bash ./installTorrServerMac.sh

Alternative install script for Intel Macs: https://github.com/dancheskus/TorrServerMacInstaller

IOCage Plugin (Unofficial)

On FreeBSD (TrueNAS/FreeNAS) you can use this plugin: https://github.com/filka96/iocage-plugin-TorrServer

NAS Systems (Unofficial)

Server args

  • --port PORT, -p PORT - web server port (default 8090)
  • --ssl - enables https for web server
  • --sslport PORT - web server https port (default 8091). If not set, will be taken from db (if stored previously) or the default will be used.
  • --sslcert PATH - path to ssl cert file. If not set, will be taken from db (if stored previously) or default self-signed certificate/key will be generated.
  • --sslkey PATH - path to ssl key file. If not set, will be taken from db (if stored previously) or default self-signed certificate/key will be generated.
  • --path PATH, -d PATH - database and config dir path
  • --logpath LOGPATH, -l LOGPATH - server log file path
  • --weblogpath WEBLOGPATH, -w WEBLOGPATH - web access log file path
  • --rdb, -r - start in read-only DB mode
  • --httpauth, -a - enable http auth on all requests
  • --dontkill, -k - don't kill server on signal
  • --ui, -u - open torrserver page in browser
  • --torrentsdir TORRENTSDIR, -t TORRENTSDIR - autoload torrents from dir
  • --torrentaddr TORRENTADDR - Torrent client address (format [IP]:PORT, ex. :32000, 127.0.0.1:32768 etc)
  • --pubipv4 PUBIPV4, -4 PUBIPV4 - set public IPv4 addr
  • --pubipv6 PUBIPV6, -6 PUBIPV6 - set public IPv6 addr
  • --searchwa, -s - allow search without authentication
  • --help, -h - display this help and exit
  • --version - display version and exit

Example:

TorrServer-darwin-arm64 [--port PORT] [--path PATH] [--logpath LOGPATH] [--weblogpath WEBLOGPATH] [--rdb] [--httpauth] [--dontkill] [--ui] [--torrentsdir TORRENTSDIR] [--torrentaddr TORRENTADDR] [--pubipv4 PUBIPV4] [--pubipv6 PUBIPV6] [--searchwa]

Running in Docker & Docker Compose

Run in console

docker run --rm -d --name torrserver -p 8090:8090 ghcr.io/yourok/torrserver:latest

For running in persistence mode, just mount volume to container by adding -v ~/ts:/opt/ts, where ~/ts folder path is just example, but you could use it anyway... Result example command:

docker run --rm -d --name torrserver -v ~/ts:/opt/ts -p 8090:8090 ghcr.io/yourok/torrserver:latest

Environments

  • TS_HTTPAUTH - 1, and place auth file into ~/ts/config folder for enabling basic auth
  • TS_RDB - if 1, then the enabling --rdb flag
  • TS_DONTKILL - if 1, then the enabling --dontkill flag
  • TS_PORT - for changind default port to 5555 (example), also u need to change -p 8090:8090 to -p 5555:5555 (example)
  • TS_CONF_PATH - for overriding torrserver config path inside container. Example /opt/tsss
  • TS_TORR_DIR - for overriding torrents directory. Example /opt/torr_files
  • TS_LOG_PATH - for overriding log path. Example /opt/torrserver.log

Example with full overrided command (on default values):

docker run --rm -d -e TS_PORT=5665 -e TS_DONTKILL=1 -e TS_HTTPAUTH=1 -e TS_RDB=1 -e TS_CONF_PATH=/opt/ts/config -e TS_LOG_PATH=/opt/ts/log -e TS_TORR_DIR=/opt/ts/torrents --name torrserver -v ~/ts:/opt/ts -p 5665:5665 ghcr.io/yourok/torrserver:latest

Docker Compose

# docker-compose.yml

version: '3.3'
services:
    torrserver:
        image: ghcr.io/yourok/torrserver
        container_name: torrserver
        environment:
            - TS_PORT=5665
            - TS_DONTKILL=1
            - TS_HTTPAUTH=0
            - TS_CONF_PATH=/opt/ts/config
            - TS_TORR_DIR=/opt/ts/torrents
        volumes:
            - './CACHE:/opt/ts/torrents'
            - './CONFIG:/opt/ts/config'
        ports:
            - '5665:5665'
        restart: unless-stopped

Smart TV (using Media Station X)

  1. Install Media Station X on your Smart TV (see platform support)

  2. Open it and go to: Settings -> Start Parameter -> Setup

  3. Enter current ip and port of the TorrServe(r), e.g. 127.0.0.1:8090

Development

Go server

To run the Go server locally, just run

cd server
go run ./cmd

Web development

To run the web server locally, just run

yarn start

More info at https://github.com/YouROK/TorrServer/tree/master/web#readme

Build

Server

  • Install Golang 1.20+
  • Go to the TorrServer source directory
  • Run build script under linux or macOS build-all.sh

Web

  • Install npm and yarn
  • Go to the web directory
  • Run NODE_OPTIONS=--openssl-legacy-provider yarn build

Android

To build an Android server you will need the Android Toolchain.

Swagger

swag must be installed on the system to [re]build Swagger documentation.

go install github.com/swaggo/swag/cmd/swag@latest
cd server; swag init -g web/server.go

# Documentation can be linted using
swag fmt

API

API Docs

API documentation is hosted as Swagger format available at path /swagger/index.html.

Authentication

The users data file should be located near to the settings. Basic auth, read more in wiki https://en.wikipedia.org/wiki/Basic_access_authentication.

accs.db in JSON format:

{
    "User1": "Pass1",
    "User2": "Pass2"
}

Note: You should enable authentication with -a (--httpauth) TorrServer startup option.

Whitelist/Blacklist IP

The lists file should be located in the same directory with config.db.

  • Whitelist file name: wip.txt
  • Blacklist file name: bip.txt

Whitelist has priority over everything else.

Example:

local:127.0.0.0-127.0.0.255
127.0.0.0-127.0.0.255
local:127.0.0.1
127.0.0.1
# at the beginning of the line, comment

Donate

  • YooMoney
  • SberBank Card: 5484 4000 2285 7839

Thanks to everyone who tested and helped

torrserver's People

Contributors

anton111111 avatar avengermsoft avatar brunif avatar cocool97 avatar damiva avatar dancheskus avatar deepsource-autofix[bot] avatar deepsourcebot avatar dependabot[bot] avatar faintghost avatar filimonic avatar filka96 avatar gennadyspb avatar ggunslinger avatar h31p avatar kayukin avatar kolsys avatar leporel avatar lieranderl avatar mzyozhic avatar oshitikov avatar piromant avatar qarkai avatar strikysha avatar testwill avatar topperbg avatar totavok8 avatar tsynik avatar vladlenas avatar yourok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

torrserver's Issues

error load torrent file

Я не понимаю, то ли лыжи не едут, то ли я не тово. Все arm64 версии сервера, начиная с 1.1.71 отваливаются с ошибкой Web server error, code 400, error load torrent file. Все. 73ю пробовал, сейчас вот 76ю - одна и та же ерунда. откатываюсь к 1.70 и все ок. Клиенты как 1.1.82 на андроиде так и (не помню какая версия) для коди под coreelec.

Jan 19 13:32:58 aml latest[4412]: Error get torrent: 615d4567dc94d4427594e3c0744c717b3efb3fec error load torrent file
Jan 19 13:32:58 aml latest[4412]: 2020/01/19 13:32:58 Web server error: code=400, message=error load torrent file, internal=<nil> /torrent/get
Jan 19 13:33:03 aml latest[4412]: Adding torrent magnet:?xt=urn:btih:cf1f9066ca4e9766321101d756a948b29ffc91e5&dn=The.Expanse.S04.1080p.WEBRip.Rus.Eng.EniaHD&tr=http%3A%2F%2Fbt.t-ru.org%2Fann%3Fpk%3D76971f8850d10e4113928845a0ebb504&tr=http%3A%2F%2Fretracker.local%2Fannounce&tr=http%3A%2F%2F210.244.71.25%3A6969%2Fannounce&tr=http%3A%2F%2F46.4.109.148%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker2.wasabii.com.tw%3A6969%2Fannounce&tr=http%3A%2F%2F87.248.186.252%3A8080%2Fannounce&tr=http%3A%2F%2Ftracker.tiny-vps.com%3A6969%2Fannounce&tr=udp%3A%2F%2F46.148.18.250%3A2710&tr=udp%3A%2F%2Fipv6.leechers-paradise.org%3A6969&tr=http%3A%2F%2Ftracker.filetracker.pl%3A8089%2Fannounce&tr=http%3A%2F%2Ftracker.grepler.com%3A6969%2Fannounce&tr=http%3A%2F%2F125.227.35.196%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.dler.org%3A6969%2Fannounce&tr=udp%3A%2F%2F%5B2001%3A67c%3A28f8%3A92%3A%3A1111%3A1%5D%3A2710
Jan 19 13:33:06 aml latest[4412]: Create cache for: The.Expanse.S04.1080p.WEBRip.Rus.Eng.EniaHD
Jan 19 13:33:07 aml latest[4412]: Error get torrent: cf1f9066ca4e9766321101d756a948b29ffc91e5 error load torrent file
Jan 19 13:33:07 aml latest[4412]: 2020/01/19 13:33:07 Web server error: code=400, message=error load torrent file, internal=<nil> /torrent/get
Jan 19 13:33:13 aml latest[4412]: 2020-01-19 13:33:13 client.go:325: completed bootstrap, [{*dht.Server [dht server on 0.0.0.0:46699]} {*torrent.Client [0x40000e6000]} {dht.TraversalStats [dht.TraversalStats{NumAddrsTried:9746, NumResponses:7594}]}]
Jan 19 13:33:27 aml latest[4412]: Adding torrent magnet:?xt=urn:btih:615d4567dc94d4427594e3c0744c717b3efb3fec&dn=UFC+246_Conor+McGregor+vs.+Donald+Cerrone.mkv&tr=http%3A%2F%2Fbt.t-ru.org%2Fann&tr=http%3A%2F%2Fretracker.local%2Fannounce
Jan 19 13:33:27 aml latest[4412]: Error get torrent: 615d4567dc94d4427594e3c0744c717b3efb3fec error load torrent file
Jan 19 13:33:27 aml latest[4412]: 2020/01/19 13:33:27 Web server error: code=400, message=error load torrent file, internal=<nil> /torrent/get
Jan 19 13:33:30 aml latest[4412]: Adding torrent magnet:?xt=urn:btih:615d4567dc94d4427594e3c0744c717b3efb3fec&dn=UFC+246_Conor+McGregor+vs.+Donald+Cerrone.mkv&tr=http%3A%2F%2Fbt.t-ru.org%2Fann&tr=http%3A%2F%2Fretracker.local%2Fannounce
Jan 19 13:33:30 aml latest[4412]: Error get torrent: 615d4567dc94d4427594e3c0744c717b3efb3fec error load torrent file
Jan 19 13:33:30 aml latest[4412]: 2020/01/19 13:33:30 Web server error: code=400, message=error load torrent file, internal=<nil> /torrent/get

Error on torr file

root@x:/torrserver# 2021/03/03 22:39:51 Start TorrServer MatriX.83
2021/03/03 22:39:51 Find upnp port
2021/03/03 22:39:51 Set upnp port 32000
2021/03/03 22:39:51 Configure client: {"CacheSize":209715200,"PreloadBuffer":true,"ReaderReadAHead":70,"ForceEncrypt":true,"RetrackersMode":1,"TorrentDisconnectTimeout":30,"EnableDebug":false,"EnableIPv6":true,"DisableTCP":false,"DisableUTP":false,"DisableUPNP":false,"DisableDHT":false,"DisablePEX":false,"DisableUpload":false,"DownloadRateLimit":0,"UploadRateLimit":0,"ConnectionsLimit":20,"DhtConnectionLimit":500,"PeersListenPort":0,"Strategy":0}
2021/03/03 22:39:51 Start web 8090
2021/03/03 22:39:51 UPnP discovery result ca3b9118-5da5-3db8-06e0-052db8c2b468/WANDevice/urn:upnp-org:serviceId:WANIPConn1/urn:schemas-upnp-org:service:WANIPConnection:1/http://192.168.1.111:52899/ctl/IPConn
2021-03-03 22:39:53 portfwd.go:31: discovered 1 upnp devices
2021-03-03 22:40:19 client.go:316: completed bootstrap, [{*dht.Server [dht server on [::]:32000]} {*torrent.Client [0xc0002b6580]} {dht.TraversalStats [{3445 469}]}]
2021/03/03 22:40:21 add torrent file file0
2021/03/03 22:40:22 Create cache for: Shorta.2020.BDRip.1080p.mkv e01b5e41e0bf62de4aa82a0ed2a7aeada397da15
2021/03/03 22:40:22 save to db: e01b5e41e0bf62de4aa82a0ed2a7aeada397da15
2021-03-03 22:40:33 client.go:316: completed bootstrap, [{*dht.Server [dht server on 0.0.0.0:32000]} {*torrent.Client [0xc0002b6580]} {dht.TraversalStats [{9436 6761}]}]
2021/03/03 22:40:43 add torrent file file0
2021/03/03 22:40:43 Create cache for: PoslednijBogatyr2WEBRip1080p.mkv 18ec4dd37f19044a81b34f99314b3e417de2f901
2021/03/03 22:40:43 save to db: 18ec4dd37f19044a81b34f99314b3e417de2f901
2021/03/03 22:40:46 add torrent file file0
2021/03/03 22:40:46 Create cache for: American.Gods.S03E07.1080p.rus.LostFilm.TV.mkv 29ff964233af0f27573d77462f0341549d961616
2021/03/03 22:40:46 save to db: 29ff964233af0f27573d77462f0341549d961616
2021/03/03 22:40:49 add torrent file file0
2021/03/03 22:40:49 Create cache for: Tom.Gerry.2021.WEB-DL.1080p.mkv 862e7c32ff62e9fcd054eb8d7f7fbf8830345a4d
2021/03/03 22:40:50 save to db: 862e7c32ff62e9fcd054eb8d7f7fbf8830345a4d

2021/03/03 22:41:07 [Recovery] 2021/03/03 - 22:41:07 panic recovered:
runtime error: invalid memory address or nil pointer dereference
/usr/local/go/src/runtime/panic.go:212 (0x4373ba)
/usr/local/go/src/runtime/signal_unix.go:734 (0x450232)
/space/Projects/GO/TorrServer/server/torr/torrent.go:354 (0x8fe880)
/space/Projects/GO/TorrServer/server/web/api/upload.go:69 (0x903fa8)
/home/yourok/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:161 (0x8efd70)
/home/yourok/go/pkg/mod/github.com/gin-gonic/[email protected]/recovery.go:83 (0x8efd57)
/home/yourok/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:161 (0x8e768f)
/home/yourok/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:409 (0x8e7676)
/home/yourok/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:367 (0x8e72ac)
/usr/local/go/src/net/http/server.go:2887 (0x6cdc82)
/usr/local/go/src/net/http/server.go:1952 (0x6c986c)
/usr/local/go/src/runtime/asm_amd64.s:1371 (0x470660)

Unsolicited response received

Система Debian 10. В логах при воспроизведении циклически вылетает ошибка:

  • Jan 16 08:43:34 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:43:34 Connect client
  • Jan 16 08:43:34 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:43:34 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:43:47 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:43:47 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:43:53 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:43:53 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:44:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:44:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:44:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:44:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:45:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:45:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:45:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:45:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:46:12 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:46:12 Disconnect client
  • Jan 16 08:46:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:46:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:46:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:46:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:47:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:47:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:47:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:47:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:47:36 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:47:36 Disconnect client
  • Jan 16 08:48:06 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:48:06 Close cache for: cbb8cc8e3b1c44f6a4c1415a0f9f1b8a592c5df6
  • Jan 16 08:48:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:48:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:48:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:48:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:49:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:49:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:49:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:49:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:50:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:50:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:50:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:50:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:51:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:51:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=
  • Jan 16 08:51:32 srv TorrServer-linux-amd64[1701]: 2021/01/16 08:51:32 Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Timeout\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length: 37\r\nServer: github.com/truekenny/etracker\r\n\r\nd14:failure reason15:Request Timeoute"; err=

И сразу вопрос как можно заставить сервер писать логи в отдельный файл а не в syslog?

External subtitles

Due to the subtitles are located in the torrent next to in the same directory or subdirectory with the same video file name, but ends with *.srt or *.ass. Could you download them too?

For example, a VLC player will pick up subtitles if playlist looks like this:

#EXTM3U
#EXTINF:0,video.avi
#EXTVLCOPT:sub-file=video.srt
video.avi

If the torrent contains a file you can specify it in #EXTVLCOPT:sub-file= before the video file in playlist.

Some other video players support Subtitle folder: can automatically pick subtitles with a matching video file name from a pre-specified directory.

Stuck on getting torrent info when initializing from forkplayer

Hello.
I am getting trouble with forkplayer. Added% torrserverURL% / playlistall / all.m3u to fork player and it resolves torrents. After clicking on torrent name instead torrent content files I am getting a long wait and a timeout.
Opening torrserver UI from browser torrent is stuck on getting torrent info status and no files are displayed there either. Clicking drop button on torrserver UI and reloading torrent files is populated in torrserver web ui and status changes to torrent working.
Then going back to forkplayer and clicking on same torrent it's also working and I can play it.
But after couple of hours from fork player - same thing again

P.S. it's.only with latest beta. With stable fork player does not play at all.

Memory leak?

Sometimes TorrServer tab's memory usage grows to over 1Gb.
Ubuntu 20.04, Firefox, TorrServer 1.1.77 with default settings.

mem

OpenAPI для HTTP API

Предлагаю описать HTTP API на OpenAPI/Swagger.
В README.md можно будет вместо всего раздела сделать ссылку на Swagger Editor вида https://editor.swagger.io/?url=https://raw.githubusercontent.com/YouROK/TorrServer/master/swagger.yml.

Предзагрузка редких раздач на диск

Предложение следующее:
Оставить кэш в ОЗУ, но дать возможность предзагружать редкие раздачи которые не дают нормальной скорости для живого просмотра на диск.
Сейчас же если включить функцию "Use disk", то все торренты начинают кешироваться на диск.
Т.е. добавить функцию которая скачивает торрент полностью на диск и уже потом чтобы можно было запустить m3u на плеере и смотреть торрент.

Сейчас же делаю так:

  1. Скачиваю торрент сторонним клиентом на диск
  2. Добавляю этот торрент в TorrServer
  3. Запускаю m3u на плеере и на стороннем торрент клиенте добавляю в пиры 127.0.0.1:32000

Можно добавить рядом с кнопкой "Preload" которая загружает 32Мб торрента, кнопку "Preload Full on disk" которая скачивала бы полностью раздачу на диск.

panic: runtime error: invalid memory address or nil pointer dereference

Система:
Raspberry Pi 3 Model B Rev 1.2 (1GB RAM)
Debian 10 (armv7l)
TorrServer 1.1.76 (TorrServer-linux-arm7)
Ничего другого на малинке не запущено.
Частенько вылетает TorrServer во время работы с такой ошибкой:
Mar 15 12:00:49 tor.streamx.com TorrServer-linux-arm7[407]: panic: runtime error: invalid memory address or nil pointer dereference Mar 15 12:00:49 tor.streamx.com TorrServer-linux-arm7[407]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x48d6b4] Mar 15 12:00:49 tor.streamx.com TorrServer-linux-arm7[407]: goroutine 2002116 [running]: Mar 15 12:00:49 tor.streamx.com TorrServer-linux-arm7[407]: server/torr/storage/memcache.(*Cache).getRemPieces(0x11d2a1c0, 0xa57cec, 0x40000000, 0x0) Mar 15 12:00:49 tor.streamx.com TorrServer-linux-arm7[407]: /space/Projects/GO/TorrServer_1.1.76/src/server/torr/storage/memcache/Cache.go:161 +0x114 Mar 15 12:00:49 tor.streamx.com TorrServer-linux-arm7[407]: server/torr/storage/memcache.(*Cache).cleanPieces(0x11d2a1c0) Mar 15 12:00:49 tor.streamx.com TorrServer-linux-arm7[407]: /space/Projects/GO/TorrServer_1.1.76/src/server/torr/storage/memcache/Cache.go:136 +0x88 Mar 15 12:00:49 tor.streamx.com TorrServer-linux-arm7[407]: created by server/torr/storage/memcache.(*Piece).WriteAt Mar 15 12:00:49 tor.streamx.com TorrServer-linux-arm7[407]: /space/Projects/GO/TorrServer_1.1.76/src/server/torr/storage/memcache/Piece.go:37 +0x1a8 Mar 15 12:00:49 tor.streamx.com systemd[1]: torrserver.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Mar 15 12:00:49 tor.streamx.com systemd[1]: torrserver.service: Failed with result 'exit-code'.
Подскажите куда копать? Знаю что есть версия посвежее, но исправлен ли там этот баг?

Error getting metainfo from magnet link

При добавлении magnet-ссылки. Процесс зависает на "Getting torrent info", а через минут 5 падает с ошибкой.

Логи:
`2021/03/08 18:45:28 Start TorrServer MatriX.83
2021/03/08 18:45:28 Configure client: {"CacheSize":209715200,"PreloadBuffer":true,"ReaderReadAHead":100,"ForceEncrypt":false,"RetrackersMode":1,"TorrentDisconnectTimeout":30,"EnableDebug":false,"EnableIPv6":false,"DisableTCP":false,"DisableUTP":false,"DisableUPNP":false,"DisableDHT":false,"DisablePEX":false,"DisableUpload":false,"DownloadRateLimit":0,"UploadRateLimit":0,"ConnectionsLimit":0,"DhtConnectionLimit":0,"PeersListenPort":32001,"Strategy":0}
2021/03/08 18:45:28 Start web 8090
2021/03/08 18:45:28 UPnP discovery result 65adec60-a77c-4a55-ac26-3e57c2b84408/WANDevice/urn:upnp-org:serviceId:WANIPConn1/urn:schemas-upnp-org:service:WANIPConnection:1/http://192.168.2.1:58716/ctl/IPConn
2021-03-08 18:45:30 portfwd.go:31: discovered 1 upnp devices
2021/03/08 18:45:39 add torrent magnet:?xt=urn:btih:E95E21C12DBA03819569E9A751F3147DFEFFC04C&tr=http%3A%2F%2Fbt2.t-ru.org%2Fann%3Fmagnet&dn=%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%B8%D0%B3%D1%80%D1%8B%20%2F%20Ransum%20Games%20(%D0%9F%D0%B0%D1%80%D1%80%D0%B8%D1%81%20%D0%A0%D0%B8%D0%B2%D0%B7%20%2F%20Parris%20Reaves)%20%5B2021%2C%20%D0%A1%D0%A8%D0%90%2C%20%D0%BA%D1%80%D0%B8%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%2C%20%D1%82%D1%80%D0%B8%D0%BB%D0%BB%D0%B5%D1%80%2C%20WEB-DLRip%5D%20DVO%20(Mallorn)%20%2B%20Sub%20Rus%2C%20Eng%20%2B%20Original%20Eng
2021-03-08 18:46:00 client.go:316: completed bootstrap, [{*dht.Server [dht server on 0.0.0.0:32001]} {*torrent.Client [0xc0000d9080]} {dht.TraversalStats [{9136 6703}]}]
2021/03/08 18:55:40 error add torrent: timeout connection torrent
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x98 pc=0x8fce09]

goroutine 147848 [running]:
github.com/anacrolix/torrent.(*Torrent).InfoHash(...)
/home/yourok/go/pkg/mod/github.com/yourok/[email protected]/t.go:14
server/torr.(*Torrent).progressEvent(0xc000383ce0)
/space/Projects/GO/TorrServer/server/torr/torrent.go:150 +0x329
created by server/torr.(*Torrent).watch
/space/Projects/GO/TorrServer/server/torr/torrent.go:141 +0xaa`

Не работает MatriX.102 arm64 linux

Поставил на новую машину (nanoPI r4s)
Buster arm64
При запуске сайт выдаёт ошибку ERR_CONNECTION_TIMED_OUT
(Захожу через локальный IPv4:8090).

r4s:~:# netstat -tulpan |grep 8090
tcp6       0      0 :::8090                 :::*                    LISTEN      3698/TorrServer-lin
r4s:~:# /root/TorrServer-linux-arm64
2021/07/26 15:53:45 Start TorrServer MatriX.102
2021/07/26 15:53:45 IP: [192.168.3.70 fe80::4a95:22d0:848f:e94d 100.114.168.64 fd7a:115c:a1e0:ab12:4843:cd96:6272:a840 fe80::4f4a:2180:7bf9:dd4c 172.17.0.1 fe80::42:57ff:fe68:239b fe80::2c62:61ff:fe94:94dc fe80::48ec:adff:fe5a:cb65]
2021/07/26 15:53:45 Find upnp port
2021/07/26 15:53:45 Set upnp port 32000
2021/07/26 15:53:45 Configure client: {"CacheSize":100663296,"ReaderReadAHead":95,"PreloadCache":0,"UseDisk":false,"TorrentsSavePath":"","RemoveCacheOnDrop":false,"ForceEncrypt":false,"RetrackersMode":1,"TorrentDisconnectTimeout":30,"EnableDebug":false,"AcceptPeerCon":true,"AnnTorrentsToDht":true,"EnableIPv6":false,"DisableTCP":false,"DisableUTP":true,"DisableUPNP":false,"DisableDHT":false,"DisablePEX":false,"DisableUpload":false,"DownloadRateLimit":0,"UploadRateLimit":0,"ConnectionsLimit":23,"PeersListenPort":0}
2021/07/26 15:53:45 Start web 8090
2021-07-26T15:56:09+0300 NONE  client.go:395: dht server on 0.0.0.0:32000 (node id e468a89b122f930435633bf1be82c6d9c8eb5a21) completed bootstrap (traversal.Stats{NumAddrsTried:58, NumResponses:28})
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.3.70  netmask 255.255.255.0  broadcast 192.168.3.255
        inet6 fe80::4a95:22d0:848f:e94d  prefixlen 64  scopeid 0x20<link>
        ether 68:27:19:a5:51:fd  txqueuelen 1000  (Ethernet)
        RX packets 4877  bytes 815487 (796.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4945  bytes 723758 (706.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 35

Из-под докера работает на той-же машине

Compile error

go version go1.15.4 linux/amd64
src/server/torr/BTServer.go:165:24: cannot use dht (type torrent.DhtServer) as type *dht.Server in append
if comment error line, building fine

Тормозит

Здравствуйте, на телеке в lazy media deluxe пытаюсь посмотреть фильм в обычном 1080р , но регулярно тормозит и прогружается, про 4к вообще молчу. В ютубе 4к видео спокойно грузит без напряга. Телевизор mi tv 4s , скорость инета 100 мб/с

Webserver error then adding .torrent file

TorrServ 1.1.77, build for armv7.
System - OpenWRT-based router.
Server starts well, but any attempt to add torrent from android client provide error:
Error upload torrent bencode: syntax error (offset: 0): unknown value type '\n'
Web server error: code=400, message=bencode: syntax error (offset: 0): unknown value type '\n' /torrent/upload
Hardcoded path?

TV

Ожидается ли поддержка торрент тв в будущем?

Autoload from Folder

Please add to TorrServer: Settings->Autoload from Folder (path to folder\where autoload new *.torrent files )
Just download *.torrent file to this folder to autoload him to TorrServer

Запрос: обновление magnet ссылки без удаления предыдущей записи

Иногда сериалы выходят постепенно, серия за серией. Каждый раз приходиться удалять и добавлять заново по magnet ссылке сериал. Хотелось бы просто модифицировать старую. И чтобы не надо было постер заново ставить и название.

Рандомные зависания

Периодически на Raspberry Pi4 поток останавливается, в логах появляется это

янв 01 22:34:17 raspberrypi TorrServer-linux-arm7[18186]: 2020-01-01 22:34:17 torrent.go:1519: piece failed hash: 3 connections contributed, [{*torrent.Client [0x21cc1c0]} {*torrent.Piece [d93d8e85d9f58965b2b72eea3e317e095fb41326/819]} >
янв 01 22:35:59 raspberrypi TorrServer-linux-arm7[18186]: 2020/01/01 22:35:59 error reading torrent d93d8e85d9f58965b2b72eea3e317e095fb41326 piece 817 offset 0, 6776 bytes: unexpected EOF
янв 01 22:36:01 raspberrypi TorrServer-linux-arm7[18186]: 2020/01/01 22:36:01 error reading torrent d93d8e85d9f58965b2b72eea3e317e095fb41326 piece 818 offset 0, 6776 bytes: unexpected EOF
янв 01 22:36:40 raspberrypi TorrServer-linux-arm7[18186]: Play: map[file:[0] link:[magnet:?xt=urn:btih:d93d8e85d9f58965b2b72eea3e317e095fb41326&dn=The.Moodys.US.s01e06.WEBDL.1080p.NewStudio.TV.mkv&tr=http://newstudio.tv:2710/ffffffff59e>
янв 01 22:36:40 raspberrypi TorrServer-linux-arm7[18186]: 2020/01/01 22:36:40 Connect client
янв 01 22:36:40 raspberrypi TorrServer-linux-arm7[18186]: 2020/01/01 22:36:40 Connect client
янв 01 22:36:40 raspberrypi TorrServer-linux-arm7[18186]: 2020/01/01 22:36:40 error reading torrent d93d8e85d9f58965b2b72eea3e317e095fb41326 piece 822 offset 665836, 13815 bytes: unexpected EOF

Помогает только рестарт, до тех пор открыть именно этот торрент невозможно.
Так же предположительно есть проблемы в работе с памятью, а именно не освобождается процессом даже в простое, может дойти до 3-х гигабайт и не освобождаться сутками, при том что torrserver все это время не используется.

EDIT: На linux amd64 такие же проблемы, так что отредактировал subject

Сотрудничество

@YouROK
Я в GitHub новичок, как можно с тобой связаться в личке?
Я написал новый RemoteFork (масштабируемый) для ForkPlayer, тоже на Go.
У меня есть идея встроить в него TorrServer (ну или наоборот), что думаешь об этом? Мне кажется так будет удобней для пользователя ForkPlayer (и меньше ресурсов).

GLIBC_2.28 not found on ubuntu 18.04.2 LTS

Latest release can't run on ubuntu 18.04.2 LTS

./TorrServer-linux-amd64: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by ./TorrServer-linux-amd64)

libc6 is already the newest version (2.27-3ubuntu1).

any workaround please?

Preload & kodi

  1. Коди, работает через плагин plugin.video.torrserve, в нем стоит пребуфферизация в размере кэша. 300 mb.
    Если в коди нажать продолжить просмотр, то пребуфферизация начинается в начале файла, когда начинается просмотр, то резко начинается загрузка нужных блоков, и половина кэша почему-то остается вначале. Та же история с перемоткой, перемотал и половина кэша осталась где-то там.
    https://ibb.co/xSnMKs5
  2. Если передавать имя в ссылке (&title=) кириллицей, то файл отказывается воспроизводиться..
  3. Раньше вместо FNAME отображалось имя воспроизводимого файла, теперь там всегда FNAME.
  4. Очень плохо находит сиды, несмотря на то, что порт проброшен.

Тормозит 4К

Добрый день!

Видео 2 секунды идёт, 2 секунды тормозит.

2021-03-25_11-57-57
2021-03-25_11-56-31
2021-03-25_11-56-19
2021-03-25_11-56-04
2021-03-25_12-00-49

Никак не могу понять почему так происходит? Сигнал сильный. ПК мощный, ОЗУ достаточно. Где узкое горлышко? Помогите разобраться!

.Net wrapper library

Hi!
I created small wrapper library for my project and moved it to open-source as part of self-education (including GitHub Actions setting up and some other .Net specific stuff).

Although It doesn't support every API endpoint, so something like /stats or /play is missed, it's open for everyone to contribute.

Link: TorrServer.Net.Client

And thanks for great TorrServer!

Samsung TV Hack

Привет, мой запрос сумбурный и все-таки...
Не будем лукавить, что большинство "народных" торрентов у нас XVID/DIVX, что является проблемой для нынешних WEB-плееров. Но обход найден в виде подмены ID и DESCRIPTION кодека в файле. Оказалось, что Samsung программно выпилила поддержку народных форматов (с 2018 года), но благодаря cfourcc это все прекрасно можно решить. Но тут встает вопрос о том, что файлы торрента у нас Socket или Pipe... и может быть лучшим решением было бы добавить опцию хакнуть этот AVI и заменить пару первых байт, перед транслированием в HTTP-поток.
Понимаю, что это дикий костыль и направлен чисто на самсунговский ТВ, но многим будет приятно иметь такую опцию.
Подобное уже обсуждалось в 4pda, как Visual AVI FourCC Changer

NUM — No UI Movies - 1.0.70

ВЕРНИТЕ возможность выхода из приложения по кнопке Back/Назад.
Зачем открывать поиск по кнопке назад !!!
Зачем вообще убирать возможность выхода из приложения по кнопке назад, везде оно есть и раньше было в предыдущей версии.
Зачем убирать?

94 версия

TorrServer-linux-amd64[3938]: /opt/torrserver/TorrServer-linux-amd64: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/torrserver/TorrServer-linux-amd64)

too many open files

Привет.
На файлах с плохой раздачей (скорее всего), в логах после множественных Connect client/Disconnect client, когда воспроизведение подтупливает, возникают сообщения
torrserver[814]: echo: http: Accept error: accept tcp 0.0.0.0:8090: accept4: too many open files; retrying in 320ms
Пробовал менять open files на 3000 - не помогло.

TorrServer 1.1.77, Ubuntu 20.04.1 LTS

Текущие лимиты:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30985
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 30985
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

Движок обновление

@YouROK https://gitlab.com/axet/libtorrent
Этот источник основан на исходном коде anacrolix и здесь реализованы bep 14 local peers discovery, bep 19, dht без множественных подключений и на стабильной скоростии, bep 27, работающие с частными торрентами. Здесь решены многие проблемы которые есть в анакроликсе.

Get debug info

Как можно выяснить детали и разобраться со следующей проблемой.
Некоторые торренты через Forkplayer и Torrserver проигрываются, а некоторые нет. При этом иногда это зависит от вида Forkplayer.
Например торрент: magnet:?xt=urn:btih:595d2ea49d9e9647164d9a476482520485001369

  1. нормально качается через aForkPlayer (с телефона)
  2. не качается через Forkplayer (Tizen SmartTV)
  3. не качается через эмулятор и http://obovse.ru/ForkPlayer2.5/index.html

В качестве сервера во всех случаях используется TorrServer-windows-amd64 (версия 1.1.76). Ссылку открываю напрямую с playlist-а этого TorrServer через http://torrserver:8090/torrent/playlist.m3u

  1. Рабочий вариант: Через aForkPlayer в лог пишется:
    Create cache for: Scorpions-Rock.in.Rio.2019.XviD.HDTVRip-Лумина.avi
    Play: map[file:[0] link:[magnet:?xt=urn:btih:595d2ea49d9e9647164d9a476482520485001369&dn=Scorpions-Rock.in.Rio.2019.XviD.HDTVRip-%D0%9B%D1%83%D0%BC%D0%B8%D0%BD%D0%B0.avi&tr=http%3A%2F%2F87.248.186.252%3A8080%2Fannounce&tr=http%3A%2F%2Ftracker.dler.org%3A6969%2Fannounce&tr=http%3A%2F%2F210.244.71.25%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=http%3A%2F%2Ftracker.filetracker.pl%3A8089%2Fannounce&tr=http%3A%2F%2Fbt4.t-ru.org%2Fann%3Fmagnet&tr=udp%3A%2F%2F46.148.18.250%3A2710&tr=http%3A%2F%2Ftracker2.wasabii.com.tw%3A6969%2Fannounce&tr=udp%3A%2F%2F%5B2001%3A67c%3A28f8%3A92%3A%3A1111%3A1%5D%3A2710&tr=http%3A%2F%2Fretracker.mgts.by%3A80%2Fannounce&tr=udp%3A%2F%2Fpublic.popcorn-tracker.org%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.tiny-vps.com%3A6969%2Fannounce&tr=http%3A%2F%2F46.4.109.148%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.grepler.com%3A6969%2Fannounce&tr=http%3A%2F%2F125.227.35.196%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.city9x.com%3A2710%2Fannounce&tr=udp%3A%2F%2Fopentor.org%3A2710&tr=http%3A%2F%2Fbt.svao-ix.ru%2Fannounce&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr=udp%3A%2F%2Fipv6.leechers-paradise.org%3A6969&tr=http%3A%2F%2Fretracker.local%2Fannounce&tr=http%3A%2F%2Ftracker.electro-torrent.pl%3A80%2Fannounce&tr=http%3A%2F%2Ftracker.internetwarriors.net%3A1337%2Fannounce&tr=http%3A%2F%2Ftracker2.itzmx.com%3A6961%2Fannounce]]
    2020/03/05 22:03:33 Preload: 595d2ea49d9e9647164d9a476482520485001369 0 / 100.00MB Speed: 0 Peers:[ 5 ] 5 / 34
    Create 203 buffers
    2020/03/05 22:03:34 Preload: 595d2ea49d9e9647164d9a476482520485001369 368.00KB / 100.00MB Speed: 368.22KB Peers:[ 7 ] 7 / 34
    2020/03/05 22:03:35 Preload: 595d2ea49d9e9647164d9a476482520485001369 1.44MB / 100.00MB Speed: 1.08MB Peers:[ 5 ] 6 / 34
    2020/03/05 22:03:36 Preload: 595d2ea49d9e9647164d9a476482520485001369 3.62MB / 100.00MB Speed: 2.16MB Peers:[ 6 ] 6 / 33
    2020/03/05 22:03:37 Preload: 595d2ea49d9e9647164d9a476482520485001369 7.03MB / 100.00MB Speed: 3.44MB Peers:[ 6 ] 6 / 33
    ...

  2. Нерабочий вариант: Через Forkplayer (Tizen SmartTV) в лог пишется по несколько раз:
    Play: map[appid:[remote] box_client:[lg] box_hardware:[QRQQQ] box_mac:[b8bc5bb1a000] box_server:[13] cors:[tizen] country:[RU] f:[5] fname:[Scorpions-Rock.in.Rio.2019.XviD.HDTVRip-Лумина.avi.m3u] hw:[1.6] initial:[tForkPlayer2.57m|b8bc5bb1a000|QRQQQ|VNSKDCFCCAZVQ|MTU4MzQyNjEwOQQ=E2555|9642EB31A9E6D6D|tizenapi|0] link:[magnet:?xt=urn:btih:595d2ea49d9e9647164d9a476482520485001369&dn=Scorpions-Rock.in.Rio.2019.XviD.HDTVRip-%D0%9B%D1%83%D0%BC%D0%B8%D0%BD%D0%B0.avi&tr=http%3A%2F%2Ftracker.tiny-vps.com%3A6969%2Fannounce&tr=http%3A%2F%2F46.4.109.148%3A6969%2Fannounce&tr=udp%3A%2F%2F46.148.18.250%3A2710&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr=http%3A%2F%2Ftracker2.wasabii.com.tw%3A6969%2Fannounce&tr=http%3A%2F%2F87.248.186.252%3A8080%2Fannounce&tr=udp%3A%2F%2F%5B2001%3A67c%3A28f8%3A92%3A%3A1111%3A1%5D%3A2710&tr=udp%3A%2F%2Fipv6.leechers-paradise.org%3A6969&tr=http%3A%2F%2Fretracker.local%2Fannounce&tr=http%3A%2F%2Ftracker.grepler.com%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.dler.org%3A6969%2Fannounce&tr=http%3A%2F%2F125.227.35.196%3A6969%2Fannounce&tr=http%3A%2F%2F210.244.71.25%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=http%3A%2F%2Ftracker.filetracker.pl%3A8089%2Fannounce] m3u:[true] platform:[tizen] third:[2] tvp:[0] vr:[1.38] w_lang:[ru]]
    Play: map[file:[0] link:[magnet:?xt=urn:btih:595d2ea49d9e9647164d9a476482520485001369&dn=Scorpions-Rock.in.Rio.2019.XviD.HDTVRip-%D0%9B%D1%83%D0%BC%D0%B8%D0%BD%D0%B0.avi&tr=http%3A%2F%2F46.4.109.148%3A6969%2Fannounce&tr=http%3A%2F%2F125.227.35.196%3A6969%2Fannounce&tr=http%3A%2F%2F87.248.186.252%3A8080%2Fannounce&tr=udp%3A%2F%2Fipv6.leechers-paradise.org%3A6969&tr=http%3A%2F%2Ftracker.dler.org%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.filetracker.pl%3A8089%2Fannounce&tr=udp%3A%2F%2Fpublic.popcorn-tracker.org%3A6969%2Fannounce&tr=udp%3A%2F%2F46.148.18.250%3A2710&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr=http%3A%2F%2Ftracker2.wasabii.com.tw%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.grepler.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=http%3A%2F%2Ftracker.city9x.com%3A2710%2Fannounce&tr=http%3A%2F%2Ftracker.electro-torrent.pl%3A80%2Fannounce&tr=udp%3A%2F%2Fopentor.org%3A2710&tr=http%3A%2F%2Ftracker.tiny-vps.com%3A6969%2Fannounce&tr=udp%3A%2F%2F%5B2001%3A67c%3A28f8%3A92%3A%3A1111%3A1%5D%3A2710&tr=http%3A%2F%2Fretracker.local%2Fannounce&tr=http%3A%2F%2Fbt.svao-ix.ru%2Fannounce&tr=http%3A%2F%2Ftracker.internetwarriors.net%3A1337%2Fannounce&tr=http%3A%2F%2Ftracker2.itzmx.com%3A6961%2Fannounce&tr=http%3A%2F%2F210.244.71.25%3A6969%2Fannounce&tr=http%3A%2F%2Fbt4.t-ru.org%2Fann%3Fmagnet&tr=http%3A%2F%2Fretracker.mgts.by%3A80%2Fannounce]]
    2020/03/05 22:08:45 Connect client
    2020/03/05 22:08:45 Disconnect client

  3. Нерабочий вариант: Через Chrome и расширение эмулятор (http://obovse.ru/ForkPlayer2.5/index.html) сразу выходит ошибка:
    2020/03/05 22:11:16 Web server error: code=405, message=Method Not Allowed, internal= /torrent/play?link=magnet%3A%3Fxt%3Durn%3Abtih%3A595d2ea49d9e9647164d9a476482520485001369%26dn%3DScorpions-Rock.in.Rio.2019.XviD.HDTVRip-%25D0%259B%25D1%2583%25D0%25BC%25D0%25B8%25D0%25BD%25D0%25B0.avi%26tr%3Dhttp%253A%252F%252Ftracker.tiny-vps.com%253A6969%252Fannounce%26tr%3Dhttp%253A%252F%252F46.4.109.148%253A6969%252Fannounce%26tr%3Dudp%253A%252F%252F46.148.18.250%253A2710%26tr%3Dudp%253A%252F%252Ftracker.openbittorrent.com%253A80%252Fannounce%26tr%3Dhttp%253A%252F%252Ftracker2.wasabii.com.tw%253A6969%252Fannounce%26tr%3Dhttp%253A%252F%252F87.248.186.252%253A8080%252Fannounce%26tr%3Dudp%253A%252F%252F%255B2001%253A67c%253A28f8%253A92%253A%253A1111%253A1%255D%253A2710%26tr%3Dudp%253A%252F%252Fipv6.leechers-paradise.org%253A6969%26tr%3Dhttp%253A%252F%252Fretracker.local%252Fannounce%26tr%3Dhttp%253A%252F%252Ftracker.grepler.com%253A6969%252Fannounce%26tr%3Dhttp%253A%252F%252Ftracker.dler.org%253A6969%252Fannounce%26tr%3Dhttp%253A%252F%252F125.227.35.196%253A6969%252Fannounce%26tr%3Dhttp%253A%252F%252F210.244.71.25%253A6969%252Fannounce%26tr%3Dudp%253A%252F%252Ftracker.opentrackr.org%253A1337%252Fannounce%26tr%3Dhttp%253A%252F%252Ftracker.filetracker.pl%253A8089%252Fannounce&m3u=true&fname=Scorpions-Rock.in.Rio.2019.XviD.HDTVRip-%D0%9B%D1%83%D0%BC%D0%B8%D0%BD%D0%B0.avi.m3u&w_lang=ru&box_client=lg&box_mac=pc0784304880&box_hardware=spark&initial=ForkPlayer%202.5|pc0784304880|spark|pc0784304880|MTU4MzQyMDE0MQR=E4722|1CFF595F2587CCF|none|1&vr=0&platform=spark&country=RU&box_server=6&tvp=0&third=0&f=5&hw=1.6&box_user=petr%40mail.ru

Зависает на linux arm7

Пробую на малинке 3 через kodi плагины, виснет. При чём как то странно устанавливается, через !! all stream install !! (как то так) не находя в репозиториях запрашивает установить с git, после чего скачивается и устанавливается.

Указываю последнюю версию скачивать (1.1.72 кажется) в настройках torrserver, скачивается, устанавливается, но так же глючит, некоторые торренты вообще не запускает.

Глючит так, что даже по ssh не подключится к малинке, может через несколько минут отвиснуть на пару секунд, потом опять, просто картинка зависает и всё, ничего не работает, только хард ресет.

Плэйлист для http://forkplayer.tv

Добрый день!

Столкнулся с проблемой, что http://forkplayer.tv/ не понимает формат стандартного плэйлиста http://192.168.97.98:9999/torrent/playlist.m3u. Т.е. он неправильно интерпретирует тэг type="playlist".

Предлагаю добавить параметр type=fork http://192.168.97.98:9999/torrent/playlist.m3u?type=fork, и если он установлен отдавать плэйлист в таком формате:

<?xml version="1.0" encoding="UTF-8" ?>
<items>
<channel>
<title>Название 1</title>
<playlist_url><![CDATA[http://192.168.97.98:9999/torrent/play?link=magnet%3A%3Fxt%3Durn%3Abtih%3A2d96648ba749a38ec1797de76c89c6c8b92e6d34&m3u=true]]></playlist_url>
</channel>

<channel>
<title>Название 2</title>
<stream_url><![CDATA[http://192.168.97.98:9999/torrent/play?link=magnet%3A%3Fxt%3Durn%3Abtih%3A2d96648ba749a38ec1797de76c89c6c8b92e6d34%26dn%3DDark_%2528s03%2529_NewStudio_1080p&file=3]]></stream_url>
</channel>

</items> 

Т.е. если это каталог (m3u=true), то используем тэг "playlist_url", если ссылка на фильм - тэг "stream_url"
Я проверял, такой лист читается без проблем.

Возможна реализация данной доработки?

network is unreachable

При старте, в лог пишутся такие сообщения:
Check dns [] lookup www.themoviedb.org on 127.0.0.53:53: server misbehaving Check new dns [] lookup www.themoviedb.org on 127.0.0.53:53: dial udp 1.1.1.1:53: connect: network is unreachable Start web server, version: 1.1.76
Через nslookup адрес www.themoviedb.org резолвится нормально, как через локальный dns так и через 1.1.1.1
Сам torrserver запускается и работает нормально, смущают только эти сообщения.
torrserver x64 на ubuntu

Тех проблема

Спустя нескольких минут отключается сервер, помогите что это может быть?

Kodi + torrserve 101

При использовании kodi на последнем релизе
При перемотки в коди вперёд назад не важно
Стало не сбрасывать предыдущей кеш а кочать его по кругу

Текушею позицию не качает на беред даже на паузе

20210719_194926.mp4

Cache - Проблема

@YouROK
Проблема с кешем, использую последнюю версию сервера, torrserver matrix 99 и есть проблемы с кешем. Например, если я смотрю этот фильм 15 минут или все время до конца, без замедления, все идет нормально, но если я вернусь на 5 минут назад, чтобы посмотреть последовательность, которую я потерял, кеш полностью сломается. Скорости хватит. Не только на этом торренте есть проблемы. Настройки торсервера есть в видео, больших изменений там нет.

magnet:?xt=urn:btih:ce619f5c704e65156eb9f3d7a8bdd868527a0bbe&dn=rutor.info_%D0%93%D0%B5%D0%BD%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5+%D0%BE%D0%B3%D1%80%D0%B0%D0%B1%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5+%2F+The+Vault+%2F+Way+Down+%282021%29+BDRip+1080p+%D0%BE%D1%82+%D1%81%D0%B5%D0%BB%D0%B5%D0%B7%D0%B5%D0%BD%D1%8C+%7C+GER+Transfer+%7C+iTunes&tr=udp://opentor.org:2710&tr=udp://opentor.org:2710&tr=http://retracker.local/announce

У меня проблем с подключением нет, я использую amazon fire tv stick 4K (Vimu media player) и внешний сервер для torrserver (raspberry pi 4 4gb ram, linux). Я также тестировал проблему на платформе Windows на ПК, тоже самое, здесь я использовал плеер (VLC).

Вы также можете проверить проблему, тоже с помощью этого торрента, смотрите 15 минут, и потом верните видео 5 минут назад.

Видео с примером, 15 минут видео смонтировано, чтобы не тратить время на видео, после переходит в норму:

https://www.youtube.com/watch?v=rDmQnP7_fiI

Libtorrent

@YouROK
Привет, нашел libtorrent для большинства платформ и на языке GO. Он не взят из elementum, он уникален, его можно использовать везде, и там все объясняется. Движок для стриминга.

Может быть в будущем вам поможет.

https://github.com/i96751414/torrest

Инструкции по сборке

В README.md нужны инструкции для сборки дистрибутива.
Вижу, что есть скрипты build-all.sh, compile_init.sh, make_release.sh, но какой из них использовать неизвестно.
Какие есть зависимости сборки?

TorrServer logging options

Please add server runtime parameter (or option in server settings) for logging.
For example - full logging, only errors, errors+warnings, info events, disable logging.
Now i'm observing a lot of messages which I want to suppress in journalctl\rsyslog.

For example. I don't need messages regarding to "Clean memory GC". Or give and advise how to disable them.
Thankks.

Oct 05 18:02:37 vmunix TorrServer-linux-amd64[27864]: Preload: e1f9a2a7a5caa7268d0b99d45476300155ee0055 43.77MB / 40.00MB Speed: 35.56MB Peers:[ 3 ] 39 / 115 Oct 05 18:02:39 vmunix TorrServer-linux-amd64[27864]: Connect reader: 1 Oct 05 18:21:59 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 6155 18:02:39.470 b82312e92f22234f65945f6c63c80a9a95249271 Oct 05 18:22:43 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 6151 18:02:40.003 3fa3bfff61b6049b3514902054d3c3788814edde Oct 05 18:22:59 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 6149 18:02:40.525 571d274b9e2ee7731ea603f3690a9cdc4ebe8844 Oct 05 18:23:44 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 6148 18:02:47.776 06724d95fdf9bb9275e5d3cb993cebe126ca6804 Oct 05 18:24:29 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5504 18:03:23.207 6f29ba76a2d2c8243f45e5c027772b3a965181a9 Oct 05 18:24:37 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5505 18:03:30.813 8d35b5be15a093b8cc9953ea80418df6244f3419 Oct 05 18:24:50 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5506 18:03:38.303 4560eb3da2bbaaa69c453675e1dccdc6264e5d68 Oct 05 18:24:52 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5507 18:03:45.657 ba16b56a41091ad6deca7ed562c2bb7c8abf35be Oct 05 18:24:59 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5508 18:03:53.178 0d8d7ef89aae66f3709e68eb705dc15980cd5991 Oct 05 18:25:07 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5509 18:04:00.683 5dbb5126f1e920f90cdca68f406c972732f123fa Oct 05 18:25:14 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5510 18:04:08.181 bb412d283c91c982c3bb9ae601dc841fd949bbe7 Oct 05 18:25:22 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5511 18:04:15.503 954cfeb5dde09ce884ccdbba3c85d15cf06a3174 Oct 05 18:25:30 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5512 18:04:23.211 e40230e60ea764eba1533fb388a8d90aec3bc0e3 Oct 05 18:25:36 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5513 18:04:30.578 5933cfefd14575025adc5fc66e50bf226a534c6c Oct 05 18:25:44 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5514 18:04:38.120 06e75082970a7a6ea36f7494e0379ba98d4401bb Oct 05 18:25:52 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5515 18:04:45.616 9a464a93408e8ef81b1c9ff7bf83699983c4ba0e Oct 05 18:25:59 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5516 18:04:53.184 bb1ddb71c243872a8411d49222c91a1d28d4564c Oct 05 18:26:13 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5517 18:05:00.698 84c24be8f64e035ea0cdebcaa8222c769f046412 Oct 05 18:26:14 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5518 18:05:07.852 0d4dbcf63f9842c41d8fd8769e681751a98bd9e7 Oct 05 18:26:22 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5519 18:05:15.332 b7c4e0a8fda7068b603e6ff0341191648a30c631 Oct 05 18:26:29 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5520 18:05:22.818 f6c37532034a0fd7fda5aaabe787d4f6e709f72d Oct 05 18:26:37 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5521 18:05:30.259 87c0a397762e8d7cd5b135b33a1c6bd07f772a19 Oct 05 18:26:44 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5522 18:05:37.934 9b1062342b98d750d1f6e362a23ee3fd0b5cc53c Oct 05 18:26:52 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5523 18:05:45.496 d711a33e56744af042ee6b156e51498bc073b329 Oct 05 18:26:59 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5524 18:05:53.224 e7bd7406a1b123a8ca12c12053868d852d6e9eb0 Oct 05 18:27:06 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5525 18:06:00.694 180c8b142b336568832aec358fd7a8e1d9494dfc Oct 05 18:27:14 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5526 18:06:07.981 d526c9523837b14506e66af7cb492b6ed8b7fce1 Oct 05 18:27:28 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5527 18:06:15.298 4e4ac3829253149d1f0f8cc6318cc397978f255a Oct 05 18:27:29 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5528 18:06:22.940 8e15e252202efce9fe5966557aecf96a1be598ce Oct 05 18:27:42 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5529 18:06:30.220 0f35c6ea5f13702abac1f88a9f1fbd869cbe0291 Oct 05 18:27:44 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5530 18:06:38.068 24e9e3586fe74150508633fff2143e0a89b741c7 Oct 05 18:27:52 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5531 18:06:45.706 bc6fcd499a98b140882203d0edd6352d8d5177b5 Oct 05 18:27:58 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5532 18:06:52.979 3198d18a53c3a75dfce55dc2a4f482115c268874 Oct 05 18:28:06 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5533 18:07:00.378 173cb4b65e9f0f976c069c7f4964320f7c995a1f Oct 05 18:28:13 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 6146 18:07:00.581 36c7b14c9f29ed8dec165d1996fc7bcd88b89589 Oct 05 18:28:27 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5534 18:07:07.972 3277395dbf662ae2dea93af1158f1d4e9b4e8794 Oct 05 18:28:29 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 6154 18:07:08.141 0771b8174a46724c287cbabcb577af901451ddff Oct 05 18:28:36 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5535 18:07:22.874 97b40dd47298a30bf5270ab6a564c3b12c641a22 Oct 05 18:28:50 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5536 18:07:30.560 38240e7dab5be4393760e2b2da709babbcd2e33a Oct 05 18:28:51 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5537 18:07:37.843 a2b224d5ea8bb52f0cdeaf1c21df512ff6ce27cd Oct 05 18:28:59 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5538 18:07:45.366 0676ea1be426dea5756e78e69c4f1b350fde7078 Oct 05 18:29:12 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5539 18:07:52.880 804f7f02f971c524b51533806b437361ca345c2f Oct 05 18:29:20 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5540 18:08:00.366 b0e67787f0d8dbb782e780e020c5639e80c8b2a3 Oct 05 18:29:21 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5541 18:08:07.831 56271ddf0ec0e31e26ba2dd340aa180c53394f9b Oct 05 18:29:29 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5542 18:08:15.431 5a91850cee9fff125066d4081ceceb244a1bb8ad Oct 05 18:29:36 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5543 18:08:22.646 35ab7c981950fda881f8897cfb4aa9b967c715d7 Oct 05 18:29:50 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5544 18:08:30.205 aeea08301d662551e632ea0403206c957750deb6 Oct 05 18:29:51 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5545 18:08:37.834 1386fd0a2c33a53634491c46c7c3c51daaed9a94 Oct 05 18:29:59 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5546 18:08:45.004 2cb5d98c0b6941a872173238a32159f77b9be816 Oct 05 18:30:06 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5547 18:08:52.593 010ff5d36333152dc4e214335fb0416c937274f4 Oct 05 18:30:13 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 99% 5548 18:09:00.122 9393bab08a19dee6749cf3a59914dc763a93c994 Oct 05 18:30:21 vmunix TorrServer-linux-amd64[27864]: Clean memory GC: 100% 5549 18:09:07.801 d863bb09eabebc646f05e8a4f634d3100053b578

heroku release ?

might it be possible to release a herokuapp version as heroku app ?

Улучшения в "web"

Я бы хотел внести некоторые изменения в web дизайне. Там есть некоторые проблемы с адаптивностью на меленьких экранах.

Могу принять участие?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.