Need help with dtube?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
dtube

Description

:tv: d.tube app. A full-featured video sharing website, decentralized.

494 Stars 134 Forks Other 957 Commits 60 Opened issues

Services available

Need anything else?

Crowdin License: GPL v3 DTube channel on Discord PRs Welcome

DTube App

This is the main javascript application you can use on d.tube. This is probably the starting point for anyone wanting to contribute to d.tube.

Preview

DTube Homepage Preview

Install

Install Meteor

  • Linux and Mac:
    curl https://install.meteor.com/ | sh
  • Windows: link

Install the app

Clone this repository and

meteor npm install
in it. This will install all dependencies coming from npm including the ones required for development.

Start the app

Finally, do

meteor
in the folder to start the app in development mode.
Options:
  • -p 3456
    for running on a different port than the default 3000.
  • --production
    will minify and merge the javascript and css files.

Meteor will automatically push any change on the code to the browser while you keep the meteor dev server running.

Going in-depth

Running blockchain locally

You can run a blockchain locally on your PC to avoid sending transactions onto the live network. Follow instructions in dtube/avalon, then just change API to 'localhost:3001' in the settings page to point your UI to your development chain.

Working with Uploads

For doing anything on the upload side, it is strongly recommended to run your own dtube/ipfs-uploader. Once running, simply turn the

localhost
setting to
true
in
client/settings.js
and it will upload locally instead of our production servers.

Working on the Player

As you can see, we use the embed directly available on emb.d.tube. This is the dtube/embed repository. Feel free to clone it and directly point the

client/views/commons/videos/player.js
to your file:// version of the player if you want to make changes that include the player.

Working with pre-rendering for bots

The dtube/minidtube repository is responsible for all the pre-rendering and serving a decent version of d.tube to bots which normally wouldn't be able to.

Structure

  • .meteor
    meteor files, don't touch unless you know what you are doing.
  • .vscode
    if you use visual studio code.
  • public
    all the static files like pictures, fonts and translations.
  • client
    all the app code
  • -
    client/collections
    minimongo collections that templates feed from
  • -
    client/css
    css files.
  • -
    client/lib
    semantic ui related code.
  • -
    client/views
    templates, each has 2 files, html and js, a handlebar template and associated logic.
  • - -
    client/views/commons
    all the re-used templates
  • - -
    client/views/pages
    all the templates matching a route in
    router.js
  • - -
    client/views/topbar
    the fixed menu on top of the app
  • - -
    client/views/sidebar
    the sidebar menu

Common Issues

If you are using windows, the

meteor npm
seems to be buggy at times. You can try using the normal
npm
instead if you have that installed.

After each meteor or package.json update, you will need to re-run

meteor npm install

For any help, feel free to join us in our Discord Channel

Contributing

If you want to contribute to the project, please read this page.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.