GithubHelp home page GithubHelp logo

mediathekview / mediathekviewweb Goto Github PK

View Code? Open in Web Editor NEW
895.0 31.0 67.0 19.53 MB

Eine Weboberfläche als Alternative zum Java-Client

Home Page: https://mediathekviewweb.de/

License: GNU General Public License v3.0

HTML 23.96% CSS 3.75% Dockerfile 0.81% Shell 0.96% TypeScript 70.51%
ard sender mediathekview mediathek tv television stream video zdf german

mediathekviewweb's Introduction

License: GPL v3 Build and test Quality Gate Status

MediathekView

Das Programm MediathekView durchsucht die Mediatheken verschiedener überwiegend deutschsprachiger öffentlich-rechtlicher Sender, lädt Beiträge daraus herunter oder spielt diese ab (mit VLC Media Player oder mit einem Programm eigener Wahl). Es können auch Sendereihen/Serien abonniert werden.

MediathekView 13.6.0

Sender

Derzeit werden die Mediatheken der folgenden Sender unterstützt:

  • ARD (Das Erste)
    • alpha
    • BR (Bayerischer Rundfunk)
    • HR (Hessischer Rundfunk)
    • MDR (Mitteldeutscher Rundfunk)
    • NDR (Norddeutscher Rundfunk)
    • RBB (Rundfunk Berlin-Brandenburg)
    • rbtv (radiobremen)
    • SR (Saarländischer Rundfunk)
    • SWR (Südwestrundfunk)
    • WDR (Westdeutscher Rundfunk)
  • ZDF (Zweites Deutsches Fernsehen)
    • ZDFinfo
    • ZDFneo
    • zdf-tivi
  • Gemeinschaftsprogramme von ARD und ZDF
    • 3Sat
    • Arte (deutsch, englisch, französisch, spanisch, italienisch und polnisch)
    • Funk
    • Kika (Kinderkanal von ARD und ZDF)
    • Phoenix
  • DW TV (Deutsche Welle)
  • ORF (Österreichischer Rundfunk)
  • SRF (Schweizer Rundfunk) inkl. Podcasts

Installation

MediathekView wird in mehreren Paketen auf der Webseite angeboten. , darunter Installer für Windows & Linux. Zusätzlich zu den Installern sind auch Portable Varianten vorhanden z.B. als Zip oder tar.gz. Diese Pakete beinhalten bereits die benötigte Java Version, Java muss also nicht installiert sein.
Für RPM-basierte Linux Pakete steht auch ein GPG Key zur Verfügung, mit dem das RPM-Pakete anhand seiner Signatur verifiziert werden kann. Dieser kann mit diesem Kommando importiert werden:

sudo rpm --import https://download.mediathekview.de/stabil/MediathekView-rpm-signature-2021.pub

macOS: Für macOS werden fertige DMG-Images sowohl für Intel als auch Apple Silicon Rechner angeboten.

Bedienung

Siehe Anleitung

Support

Bei Fragen, Hilfe, gesuchten Sendungen oder sonstigen bitte das Forum verwenden.

Für Bugs siehe Contribution Guide.

See / Siehe Contribution Guide

Lizenz / License

GPL v3

Links

Credits

mediathekviewweb's People

Contributors

art4 avatar bagbag avatar bahlo avatar casaper avatar coveritytest avatar gehmasse avatar korni22 avatar krizleebear avatar marcusfey avatar simon04 avatar ueen avatar wikinaut 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

mediathekviewweb's Issues

handle of m3u8 files

either show info about not being playable (chrome, firefox - edge can handle it) or implement a player that can handle it.

Server issue: indexing appears to hang after a while

After a while, the script, or elasticsearchor whatever, hangs.

Do you have an idea what is causing this ?

sudo systemctl status mediathekviewweb
● mediathekviewweb.service - MediathekViewWeb
   Loaded: loaded (/etc/systemd/system/mediathekviewweb.service; enabled; vendor
   Active: active (running) since Sun 2017-02-12 16:50:51 UTC; 6h ago
 Main PID: 17953 (node)
    Tasks: 10 (limit: 9830)
   CGroup: /system.slice/mediathekviewweb.service
           └─17953 node /srv/mediathekviewweb/app.js

Feb 12 22:52:06 cloud2 run.sh[17953]:         totalEntries: 164658
Feb 12 22:52:06 cloud2 run.sh[17953]:         entries: 129551
Feb 12 22:52:06 cloud2 run.sh[17953]:         done: false
Feb 12 22:52:06 cloud2 run.sh[17953]:         time: 1474.673 seconds
Feb 12 22:52:06 cloud2 run.sh[17953]:         pprogress: 100.00%
Feb 12 22:52:06 cloud2 run.sh[17953]:         iprogress: 78.68%
Feb 12 22:52:06 cloud2 run.sh[17953]:         totalEntries: 164658
Feb 12 22:52:06 cloud2 run.sh[17953]:         entries: 129551
Feb 12 22:52:06 cloud2 run.sh[17953]:         done: false
Feb 12 22:52:06 cloud2 run.sh[17953]:         time: 1475.173 seconds

I stopped and restarted then elasticsearch and mediathekviewweb.

Problems with Thüringen (because of ü?)

"Thüringen" finds "MDR THÜRINGEN JOURNAL", but "#Thüringen" does not.

"MDR THÜRINGEN JOURNAL kompakt" is found by "mdr journal kompakt" but not if we add "thüringen" to it.

usability-issue, nothing important but: icon for download

I would suggest to use the "get_app" Symbol from the "materials-icons" instead of "save" as symbol for download. The oldfassioned floppydisc icon looks nice and I like it, but today..?! Less and less people know w.t.f. a floppy is and what the symbol means.
However, perhaps people who use this website, are old enough to know that Icon - ... like me ;)

Popover: URL is drawn outside of screen

Whenever I hover over the "movie" link in column "Video", a popover pops up showing a streaming and a download URL. Both URLs are rendered in a way that they reach beyond bounds of the popover.

mediathekview-online-popover-issue

Mixed Content Probleme bei der ARD

https://mediathekviewweb.de/#query=!ARD Alpha Centauri

Einige Sendungen (zum Beispiel: Sind die Planetenbahnen stabil?) werden als M3U8 Dateien angezeigt.

http://cdn-vod-ios.br.de/i/mir-live/bw1XsLzS/bLQH/bLOliLioMXZhiKT1/uLoXb69zbX06/MUJIuUOVBwQIb71S/bLWCMUJIuUOVBwQIb71S/_2rp9U1S/_-JS/_-Fc_K1S/6df970e6-47f0-4afb-b3d1-098a54465053_,0,A,B,E,C,.mp4.csmil/master.m3u8?__b__=200

Auch hier sind direkte MP4 Links verfügbar.

http://cdn-storage.br.de/mir-live/bw1XsLzS/bLQH/bLOliLioMXZhiKT1/uLoXb69zbX06/MUJIuUOVBwQIb71S/bLWCMUJIuUOVBwQIb71S/_2rp9U1S/_-JS/_-Fc_K1S/6df970e6-47f0-4afb-b3d1-098a54465053_0.mp4
http://cdn-storage.br.de/mir-live/bw1XsLzS/bLQH/bLOliLioMXZhiKT1/uLoXb69zbX06/MUJIuUOVBwQIb71S/bLWCMUJIuUOVBwQIb71S/_2rp9U1S/_-JS/_-Fc_K1S/6df970e6-47f0-4afb-b3d1-098a54465053_A.mp4
http://cdn-storage.br.de/mir-live/bw1XsLzS/bLQH/bLOliLioMXZhiKT1/uLoXb69zbX06/MUJIuUOVBwQIb71S/bLWCMUJIuUOVBwQIb71S/_2rp9U1S/_-JS/_-Fc_K1S/6df970e6-47f0-4afb-b3d1-098a54465053_B.mp4
http://cdn-storage.br.de/mir-live/bw1XsLzS/bLQH/bLOliLioMXZhiKT1/uLoXb69zbX06/MUJIuUOVBwQIb71S/bLWCMUJIuUOVBwQIb71S/_2rp9U1S/_-JS/_-Fc_K1S/6df970e6-47f0-4afb-b3d1-098a54465053_E.mp4
http://cdn-storage.br.de/mir-live/bw1XsLzS/bLQH/bLOliLioMXZhiKT1/uLoXb69zbX06/MUJIuUOVBwQIb71S/bLWCMUJIuUOVBwQIb71S/_2rp9U1S/_-JS/_-Fc_K1S/6df970e6-47f0-4afb-b3d1-098a54465053_C.mp4

Ich habe das jetzt bei 5 verschiedenen Alpha Centauri Sendungen überprüft. Die URL beginnt mit http://cdn-storage.br.de und 0 A B E C sind die jeweiligen Qualitätsstufen.

Hier noch ein Beispiel (Was ist ein Wolf-Rayet-Stern?). Da fehlt dann das mir-live in der URL (sieht man schon an der M3U8 Datei).

http://cdn-vod-ios.br.de/i/MUJIuUOVBwQIbtCCbmCpMX1lBLPGiL1DNA4p_-dS/_-JS/_-r65foyBKdS/f42e2c56-6c69-4c40-a2aa-abc3e4e061b5_,0,A,B,E,C,.mp4.csmil/master.m3u8?__b__=200
http://cdn-storage.br.de/MUJIuUOVBwQIbtCCbmCpMX1lBLPGiL1DNA4p_-dS/_-JS/_-r65foyBKdS/f42e2c56-6c69-4c40-a2aa-abc3e4e061b5_0.mp4
http://cdn-storage.br.de/MUJIuUOVBwQIbtCCbmCpMX1lBLPGiL1DNA4p_-dS/_-JS/_-r65foyBKdS/f42e2c56-6c69-4c40-a2aa-abc3e4e061b5_A.mp4
http://cdn-storage.br.de/MUJIuUOVBwQIbtCCbmCpMX1lBLPGiL1DNA4p_-dS/_-JS/_-r65foyBKdS/f42e2c56-6c69-4c40-a2aa-abc3e4e061b5_B.mp4
http://cdn-storage.br.de/MUJIuUOVBwQIbtCCbmCpMX1lBLPGiL1DNA4p_-dS/_-JS/_-r65foyBKdS/f42e2c56-6c69-4c40-a2aa-abc3e4e061b5_E.mp4
http://cdn-storage.br.de/MUJIuUOVBwQIbtCCbmCpMX1lBLPGiL1DNA4p_-dS/_-JS/_-r65foyBKdS/f42e2c56-6c69-4c40-a2aa-abc3e4e061b5_C.mp4

Als Alternative würde auch HTTPS funktionieren.

https://cdn-vod-ios.br.de/i/mir-live/bw1XsLzS/bLQH/bLOliLioMXZhiKT1/uLoXb69zbX06/MUJIuUOVBwQIb71S/bLWCMUJIuUOVBwQIb71S/_2rp9U1S/_-JS/_-Fc_K1S/6df970e6-47f0-4afb-b3d1-098a54465053_,0,A,B,E,C,.mp4.csmil/master.m3u8?__b__=200
https://cdn-vod-ios.br.de/i/MUJIuUOVBwQIbtCCbmCpMX1lBLPGiL1DNA4p_-dS/_-JS/_-r65foyBKdS/f42e2c56-6c69-4c40-a2aa-abc3e4e061b5_,0,A,B,E,C,.mp4.csmil/master.m3u8?__b__=200

How to perform an exact search ?

When I want to search for word "stur", I also get the results for "sturm", and many more which first characaters are "stur".

How could I limit my search (in extraordinary cases which otherwise would give too many results) to an exact search, i.e the entered characters only ?

Keine Verbindung

Ich finde das Projekt interessant. Es ist ansprechender gestaltet und scheint mehr Funktionen als mediathekdirekt zu bieten. Leider kommt beim Aufruf der Seite immer nur Folgendes:

bildschirmfoto vom 2016-12-30 15-57-31

Hours are excluded from "Dauer"

It seems hours are excluded from the time. For example, when you search for Tatot Klingelingeling, the site claims that the video is 27 minutes long when in reality it's 87. 60 minutes are gone.

Indexing fails

re: https://github.com/mediathekview/mediathekviewweb/wiki/Running-Server

$ sudo npm run build

[email protected] build /var/www/html/mediathekviewweb
babel index.js --out-file ./static/index-compiled.min.js --source-maps

/usr/bin/env: ‘node’: No such file or directory

npm ERR! [email protected] build: babel index.js --out-file ./static/index-compiled.min.js --source-maps
npm ERR! Exit status 127
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is most likely a problem with the mediathekviewweb package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! babel index.js --out-file ./static/index-compiled.min.js --source-maps
npm ERR! You can get their info via:
npm ERR! npm owner ls mediathekviewweb
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 4.9.0-1-amd64
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "run" "build"
npm ERR! cwd /var/www/html/mediathekviewweb
npm ERR! node -v v4.7.2
npm ERR! npm -v 1.4.21
npm ERR! code ELIFECYCLE
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

RSS-Feeds

RSS-Feeds als Vorläufer (und später Alternative) zu einem richtigen Abo-System.

Subtitles

Is it possible to watch with subtitles?
What do I do with a subtitle in xml format ?
How can I convert xml to srt ?

Box not cleared on start

Konsole:

mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create video.min.js:14:28836

[Suggestion] Direct download link url: add download attribute to <a href="video.mp4"> links

I use Firefox, and was trying to find out why I don't see the "open as / save as" menu when clicking onto your download icons. This is according to https://support.mozilla.org/de/questions/1055477 based on (about:config) media.play-stand-alone (true).

As we cannot ask users to toggle this setting, I was trying to find a programmatic solution which fires a download dialog when clicking the Url.

According to https://stackoverflow.com/questions/20956434/create-download-link-for-music-or-video/20956558#20956558 and http://www.w3schools.com/tags/att_download.asp there is a download option attribute, which you can try in your code. (I cannot, because I haven't installed your server code at the moment).

The download attribute specifies that the target will be downloaded when a user clicks on the hyperlink.
This attribute is only used if the href attribute is set.

Perhaps you can try it on your server:
<a href="video.mp4" download>

Leere Tabelle beim Start

Wenn kein Suchbegriff eingegeben ist, steht bei mir "Keine Daten in der Tabelle vorhanden".

Ich fände es besser, wenn dann alle Dateien angezeigt würden.

Lizenz?

Unter welcher Lizenz steht der Code?

[Issue tracker/Suggestions] Issue tracker for improvements

Issue tracker for improvements

  • add a X "clear input" symbol at the end of the input line
  • fold also "GitHub" and "Kontact" into "Über" (to save screen space); rename "GitHub" to "Source code"
  • extend space between the "play" and "download" icons (allow more space: on smartphones, the both are too close, and clicking on is difficult)
  • add <label...> tags for "Überall" and "Zukünftig" checkboxes, or make the whole button area sensitive for clicks
  • #43 Make a better dev environment by auto building changed index.js (as I often forget it and then wonder why stuff still doesn't work) (added by bagbag)
  • #51 Make settings persistent
  • #41 Allow exact searches

This head posting will be edited (updated).

(I am going to install the software on my server an will try to fix one or the other and come back later with formal issues, and/or pull requests.). Feel free to extend this "Sammeleintrag".)

Zugriff auf das Optionsmenü mit dem Firefox Browser [Android]

Auf dem Smartphone gibt es ein Problem mit dem Menü. Tippt man auf das Videosymbol Icon
öffnet sich sowohl der Player, als auch das Menü mit den verschiedenen Qualitätsstufen. Da beides gleichzeitig passiert, hat man keine Möglichkeit eine Aktion auszuwählen.

Getestet mit dem Firefox Browser für Android.

Screenshot

[Enhancement] Intuitive, easy search options

I think this is a great site and congratulations for creating it! I personally can get along with the search options quite well (e.g. the abbreviation ! for the channel), however, "normal" users who are not much inclined on how computers and the internet work do have issues with understanding how to use it.

In the long term it would be really helpful to increase the usefullness of this website to such people by introducing easier, visual search options. There are thousands of webpages out there offering some kind of search with a few clicks only. Options might be a) an 'advanced' search options opening up more fields, b) clickable table headings allowing to filter/search per column, c) ...

[Suggestion] Add "Description" column to "Title" to save screen space

Let me suggest to "merge" the fourth column's content to the third column (and then delete the fourth column). Add the click-handler to the title, so that the description is shown as tooltip when the title is clicked (or onhover).

Saves screen space on small displays (like my MacBook).

[Suggestion] Show age of Filmliste, filmlist download age, and/or local index age

I suggest some improvements of the bottom line
"Die Suchmaschine brauchte 37.71 ms, zeige Treffer 1 bis 15 von insgesamt 162524 Treffern."

  • localisation: replace decimal point "." with "," - for those language where this apply like German
  • add age of the filmliste, at least the download date to the MVW server
  • add index age (if this is relevant for the end user. As an end user, I am only interested in the "effective age" of the data which I can search, but when it comes to playing a video, it's the availability of the video. Because I don't currently know what is possible, I filed the two dates here.)

only index filmliste if it is new

filmlists are now indexed every hour, no matter whether its new or not.

hints: content-length of HTTP-Request, header in filmliste itself and hash of filmliste

by doing this we can also reduce checking interval (as filmliste isnt updated always on the same time) to have new filmlists earlier

Error Reporting

As I got mails from users having Problems on their Apple Device (🤢), I should implement an error reporting function.

Something like

window.onerror = function(msg, url, line, col, error) {
   ajax('/error', {msg:msg, url:url, ....});
};

ARTE.FR vs. ARTE.DE "b-movie"

Vielleicht ein Datenbank- oder Filmlistenproblem:

Eingabe von b-movie findet (derzeitig) nur den Eintrag bei ARTE.FR. Ich wollte den ARTE.DE haben.

HLS Master Playlist und MP4 Links

Wenn man nach "!WDR #WDR aktuell" sucht, wird in der Auswahl statt der "Master Playlist" nur die jeweilige "Variant Playlist" angezeigt. Wäre es möglich zusätzlich die Master Playlist anzuzeigen, um dann mit externen Tools (Livestreamer, Streamlink, VLC, ...) darauf zugreifen zu können?

Angezeigt wird folgendes (WDR aktuell vom 10.02.2017):

Mittel:

http://adaptiv.wdr.de/i/medp/ww/fsk0/130/1307723/,1307723_15222589,1307723_15222588,1307723_15222590,1307723_15222591,.mp4.csmil/index_2_av.m3u8

Niedrig:

http://adaptiv.wdr.de/i/medp/ww/fsk0/130/1307723/,1307723_15222589,1307723_15222588,1307723_15222590,1307723_15222591,.mp4.csmil/index_0_av.m3u8

Die Sortierung ist fehlerhaft. Playlist "index_0_av.m3u8" (512x288) hat eine höhere Auflösung als die Playlist "index_2_av.m3u8" (320x180).

Das sind allerdings nur zwei verfügbare Auflösungen. Die Master Playlist beinhaltet alle Auflösungen (auch 960x540).

http://adaptiv.wdr.de/i/medp/ww/fsk0/130/1307723/,1307723_15222589,1307723_15222588,1307723_15222590,1307723_15222591,.mp4.csmil/master.m3u8
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=529000,RESOLUTION=512x288,CODECS="avc1.77.30, mp4a.40.2"
http://adaptiv.wdr.de/i/medp/ww/fsk0/130/1307723/,1307723_15222589,1307723_15222588,1307723_15222590,1307723_15222591,.mp4.csmil/index_0_av.m3u8?null=0
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1661000,RESOLUTION=960x540,CODECS="avc1.77.30, mp4a.40.2"
http://adaptiv.wdr.de/i/medp/ww/fsk0/130/1307723/,1307723_15222589,1307723_15222588,1307723_15222590,1307723_15222591,.mp4.csmil/index_1_av.m3u8?null=0
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=177000,RESOLUTION=320x180,CODECS="avc1.66.30, mp4a.40.2"
http://adaptiv.wdr.de/i/medp/ww/fsk0/130/1307723/,1307723_15222589,1307723_15222588,1307723_15222590,1307723_15222591,.mp4.csmil/index_2_av.m3u8?null=0
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=310000,RESOLUTION=480x270,CODECS="avc1.66.30, mp4a.40.2"
http://adaptiv.wdr.de/i/medp/ww/fsk0/130/1307723/,1307723_15222589,1307723_15222588,1307723_15222590,1307723_15222591,.mp4.csmil/index_3_av.m3u8?null=0
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=56000,CODECS="mp4a.40.2"
http://adaptiv.wdr.de/i/medp/ww/fsk0/130/1307723/,1307723_15222589,1307723_15222588,1307723_15222590,1307723_15222591,.mp4.csmil/index_2_a.m3u8?null=0

Direkte Links gibt es auch.

http://ondemand-ww.wdr.de/medp/fsk0/130/1307723/1307723_15222588.mp4

Warum werden diese Links eigentlich nicht angezeigt?

Would like to do exact searches

When searching for e.g. "Wüste", unprecise results like "Küste", "Büste", "Waste" etc are displayed, thus splattering my search results.
Imho searches should be more precise by default, unless stated by some kind of pattern/expression.

advanced search and the symbol '.'

Filtering the search for ex. ARTE.DE does not work with '!ARTE.DE'. It only works with '!de'. The same ist true for ARTE.FR.
Seems like the '.'-symbol breaks the filter?

Subdomain

Es wäre sinnvoll eine Subdomain / Weiterleitung einzurichten.

https://www.mediathekviewweb.de

Fehler: Server nicht gefunden

Der Server unter www.mediathekviewweb.de konnte nicht gefunden werden.

Small GUI problem with "Description" tooltips: tooltips are not closed always

I think, you will change the tooltip code later, or skip that description column as discussed in another issue, but I want to report a small issue with the current implementation.

A tooltip is not closed and stays visible when moving over it.

How to reproduce:

  • click onto the first description arrow down
  • a first tooltip opens now
  • now move the cursor (hover) over this first opened tooltip
  • (notice, that now the tooltip does not close when moving out of the tooltip)
  • click onto another description arrow down
  • new tooltip opens and overlaps the first one.

This effect, the numerous opened tooltips, can currently only be cleared by reloading the page.

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.