Cerdic / pouetradio

11 stars 1 forks source link

Supporter peertube #8

Closed Drulac closed 6 years ago

Drulac commented 6 years ago

Cela serait trop cool que les liens vers peertube (une alternative libre et décentralisée à outube) soient supportés :-)

Cerdic commented 6 years ago

Oui ce serait cool, car je suis aussi pour favoriser l'utilisation d'outil non centralisateur MAIS la pouetradio utilise le player vidéo http://www.mediaelementjs.com/ qui ne supporte pas (encore?) peertube. A court terme je n'ai pas la dispo pour me plonger dans mediaelementjs et éventuellement ajouter ce support, mais je ne sais même pas si c'est possible en l'état, peut-être ça demande des évolutions aussi du côté de Peertube

Une solution serait d'avoir un moyen de passer de l'URL de la vidéo en ligne https://peertube.nsa.ovh/videos/watch/8f4af0bf-f4b4-4436-8f17-ade72c772af2 à l'URL du mp4 https://tube.svnet.fr/static/webseed/8f4af0bf-f4b4-4436-8f17-ade72c772af2-720.mp4 ce qui je suppose est possible via une API plus ou moins publique ?

Dans ce cas on peut s'arranger pour faire jouer le mp4 dans le player de la pouetradio, sans devoir l'interfacer avec l'embed de peertube. Mais ensuite le problème sera de reconnaître les liens vers les videos peertube dans le flux mastodon, dans la mesure où il va être difficile de se baser sur le nom de domaine…

Cerdic commented 6 years ago

hmmm bon ça semble pas si compliqué :

Pour le lien vers la vidéo https://peertube.nsa.ovh/videos/watch/8f4af0bf-f4b4-4436-8f17-ade72c772af2

on peut interroger l'API

https://peertube.nsa.ovh/api/v1/videos/8f4af0bf-f4b4-4436-8f17-ade72c772af2

qui réponds

{"id":1972,"uuid":"8f4af0bf-f4b4-4436-8f17-ade72c772af2","name":"ACHAB - Black bloc","category":{"id":14,"label":"Activism"},"licence":{"id":null,"label":"Unknown"},"language":{"id":13,"label":"French"},"nsfw":false,"description":"Achab est un groupe dont certaines videos sont difficiles à visionner sur d'autres sites.","isLocal":false,"duration":254,"views":117,"likes":5,"dislikes":0,"thumbnailPath":"/static/thumbnails/8f4af0bf-f4b4-4436-8f17-ade72c772af2.jpg","previewPath":"/static/previews/8f4af0bf-f4b4-4436-8f17-ade72c772af2.jpg","embedPath":"/videos/embed/8f4af0bf-f4b4-4436-8f17-ade72c772af2","createdAt":"2018-03-07T20:52:11.261Z","updatedAt":"2018-04-11T13:41:33.220Z","account":{"id":152,"url":"https://tube.svnet.fr/accounts/coquihani","uuid":"ee2eb373-e1da-4ae2-be4a-3172b5267975","name":"coquihani","host":"tube.svnet.fr","followingCount":0,"followersCount":2,"avatar":null,"createdAt":"2018-03-07T15:32:51.320Z","updatedAt":"2018-03-07T15:32:51.320Z","displayName":"coquihani","description":null},"privacy":{"id":1,"label":"Public"},"support":null,"descriptionPath":"/api/v1/videos/8f4af0bf-f4b4-4436-8f17-ade72c772af2/description","channel":{"id":88,"url":"https://tube.svnet.fr/video-channels/7b7321e0-745c-4f08-8745-45fa3870019b","uuid":"7b7321e0-745c-4f08-8745-45fa3870019b","name":"7b7321e0-745c-4f08-8745-45fa3870019b","host":"tube.svnet.fr","followingCount":0,"followersCount":0,"avatar":null,"createdAt":"2018-03-07T15:32:51.472Z","updatedAt":"2018-03-07T15:32:51.472Z","displayName":"Default coquihani channel","description":null,"support":null,"isLocal":false},"tags":[],"commentsEnabled":true,"files":[{"resolution":{"id":720,"label":"720p"},"magnetUri":"magnet:?xs=https%3A%2F%2Ftube.svnet.fr%2Fstatic%2Ftorrents%2F8f4af0bf-f4b4-4436-8f17-ade72c772af2-720.torrent&xt=urn:btih:d5f7bbdc63db5404c1424cee923101b6df008b9e&dn=ACHAB+-+Black+bloc&tr=wss%3A%2F%2Ftube.svnet.fr%2Ftracker%2Fsocket&tr=https%3A%2F%2Ftube.svnet.fr%2Ftracker%2Fannounce&ws=https%3A%2F%2Ftube.svnet.fr%2Fstatic%2Fwebseed%2F8f4af0bf-f4b4-4436-8f17-ade72c772af2-720.mp4","size":60494776,"torrentUrl":"https://tube.svnet.fr/static/torrents/8f4af0bf-f4b4-4436-8f17-ade72c772af2-720.torrent","fileUrl":"https://tube.svnet.fr/static/webseed/8f4af0bf-f4b4-4436-8f17-ade72c772af2-720.mp4"}]}

et dont le json donne l'URL du mp4

"fileUrl":"https://tube.svnet.fr/static/webseed/8f4af0bf-f4b4-4436-8f17-ade72c772af2-720.mp4"

On peut donc supposemment faire quelque chose avec tout ça, à voir comment

Cerdic commented 6 years ago

Je note ici les liens utiles vers la doc

Drulac commented 6 years ago

Merci pour le travail que vous faites :hugs:

alfajet commented 6 years ago

Petit commentaire pour vous dire que les liens m'ont ete bien utilie pour mon projet.

Si cela peut servir voici mon implementation en python de l'interogation de l'API de peertube pour recuperer les fichiers sources. Si la video propose plusieurs resolution, la plus elevee sera retenue. https://framagit.org/alfajet/soundcheck-vlc/blob/0acf8e2975e74baf48c9c924666529690a66609b/soundcheck_vlc/utils/video_parse.py#L44

Cela devrait etre facilement transposable en js.

@alfajet@mastodon.xyz

Cerdic commented 6 years ago

C'est en prod ! Pour info : je retiens la video avec la plus faible résolution car c'est surtout le son qui nous interesse, et j'ai du mettre en place un proxy car l'interrogation de l'API peertube en JS depuis pouet.audio se faisait bloquer par les directives CORS