Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<div id="uploader" class="dropzone"></div>
</main>
<footer id="sitefooter">
<span><a href="/">Home</a></span>
<span><a href="https://ipfstube.erindachtler.me/">Home</a></span>
<span><a href="https://github.com/download13/ipfstube">Github</a></span>
<span><a href="https://twitter.com/IPFSTube">Twitter</a></span>
<span>Plays videos from <a href="https://ipfs.io/">IPFS</a></span>
Expand Down
2 changes: 1 addition & 1 deletion public/js/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
function navigateFilehash() {
var hash = input.val();
if(hash) {
location.assign('/v/' + hash);
location.assign('player.html?v=' + hash);
}
}
})();
4 changes: 2 additions & 2 deletions public/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Dropzone.options.uploader = false;

var dropzone = new Dropzone('#uploader', {
url: '/upload',
url: 'https://ipfstube.erindachtler.me/upload',
uploadMultiple: false,
parallelUploads: 1,
dictDefaultMessage: 'Drop video here or click to upload',
Expand All @@ -16,7 +16,7 @@
dropzone.on('success', function(file, response) {
console.log('upload success', response);
setTimeout(function() {
location.assign('/v/' + response.Hash);
location.assign('player.html?v=' + response.Hash);
}, 500);
});
})();
51 changes: 47 additions & 4 deletions public/js/player.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,25 @@
(function() {
var hash = location.pathname.split('/').pop();
// hash = 'QmU1GSqu4w29Pt7EEM57Lhte8Lce6e7kuhRHo6rSNb2UaC';
queries = {}
$.each(document.location.search.substr(1).split('&'),function(q){
console.log(q);var i = q.split('=')
queries[i[0].toString()] = i[1].toString()
})

var hash = queries.v
try {
var subs = JSON.parse(decodeURIComponent(queries.subs))
} catch(e) {
var subs = {}
}

// hash = 'QmYYMMKS5z9h2CL69GBTTys2SFRZH7XM2iiRTuqrYhYGkj';
/* subs = {
"en": "Qmd9h2eZb4ft4cZAxtypj4YSs4iDu9kLfeXtG2ECgx4Mcc",
"es": "QmeVvJaydsTNJ493JPp5xcvMjMZaWBuS8eZoMCh6vpVTgV"
}*/

var playerHolder = $('#player__holder');
var player = $('#player');
var path = hashToPath(hash);
var sources = [
'ipfs:', // Browser handler
'http://127.0.0.1:8080', // User's own IPFS daemon
Expand All @@ -12,14 +28,41 @@
'https://ipfs.pics' // Is this rude?
];
var urls = sources.map(function(prefix) {
return prefix + path;
return prefix + hashToPath(hash);
});

player.on('error', function(e) {
console.log('video error', e);
tryNextUrl();
});

let def = " default"

Object.keys(subs).forEach((sub) => {

// Sliced 'ipfs:' handler because Firefox doesn't support it for video tracks
let urls = sources.slice(1).map((prefix) => {
return prefix + hashToPath(subs[sub]);
});

let tryNextUrl = (track) => {
let url = urls.shift();
if (url) {
track.get(0).src = url
}
}

let track = $(`<track kind="subtitles" label="${sub}" srclang="${sub}"${def}></track>`)
def = ""
track.on('error', function() {
console.log("error")
tryNextUrl($(this));
})

player.append(track)
tryNextUrl(track)
})

tryNextUrl();

function tryNextUrl() {
Expand Down
14 changes: 7 additions & 7 deletions public/player.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
<title>IPFSTube Player</title>
<link rel="icon" href="images/favicon_32.png" sizes="32x32" />
<link rel="icon" href="images/favicon_144.png" sizes="144x144" />
<link rel="stylesheet" href="/css/common.css" />
<link rel="stylesheet" href="/css/player.css" />
<script src="/js/cash.min.js"></script>
<link rel="stylesheet" href="css/common.css" />
<link rel="stylesheet" href="css/player.css" />
<script src="js/cash.min.js"></script>
</head>
<body>
<main id="sitemain">
Expand All @@ -14,19 +14,19 @@
<button id="hashnav__btn">Watch</button>
</div>
<div id="player__holder">
<video id="player" controls>
<video id="player" controls crossorigin="anonymous">
<p>Your browser does not support playing video. Update your browser to watch this video.</p>
</video>
</div>
</main>
<footer id="sitefooter">
<span><a href="/">Home</a></span>
<span><a href="https://ipfstube.erindachtler.me/">Home</a></span>
<span><a href="https://github.com/download13/ipfstube">Github</a></span>
<span><a href="https://twitter.com/IPFSTube">Twitter</a></span>
<span>Plays videos from <a href="https://ipfs.io/">IPFS</a></span>
</footer>
<script src="/js/common.js"></script>
<script src="/js/player.js"></script>
<script src="js/common.js"></script>
<script src="js/player.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
Expand Down