distributed systems lab project
distributed mp3 downloader from youtube - uclm computer science
the project files can be divided into 3 different types:
- zeroc ice files: locator.config so that the client knows the server address, node[n] containing the path to the corresponding node data as well as the .txt icestdout file and the xml beeing this one the core of the project with all the information of the nodes running, indirect communication between them and use of icestorm service to communicate.
- python scripts: downloader.ice given by the teacher and containing the methods to be called, aka the interface we have to use, synctimer.py a client invocating methods through a timer to sync downloaderscheduler objects using the synctopic created, factory.py which contains the schedulerfactory -a server waiting a request from synctimer and from the client- and client.py being a normal client with a proxy and allowing us to make use of the interface methods.
- makefile: to make the whole project execution and all the other stuff an easier task.
*when we use the method make we create a downloaderscheduler object through schedulerfactory that allow us to request downloads, transferences, songs lists etc. and when using kill we remove the previously created things.
zeroc ice python client from pip source distribution
pip3 install zeroc-ice
youtube-dl command-line program to download videos from websites
sudo apt-get install youtube-dl
1.crear nuevo servidor
2.eliminar servidor
3.ver lista de canciones
4.descargar cancion
5.obtener cancion
6.servidores desplegados
7.salir de la aplicacion
introduzca una opcion: 1
introduzca el nombre del servidor: s1
introduzca una opcion: 4
servidor al que realizar la solicitud: s1
introduce la url: https://www.youtube.com/watch?v=iX−QaNzd−0Y
descargando...
[descargada]
introduzca una opcion: 3
servidor al que realizar la solicitud: s1
obteniendo lista de canciones...
[obtenida]
./Milky Chance − Stolen Dance (Album Version).mp3
introduzca una opcion: 1
introduzca el nombre del servidor: s2
introduzca una opcion: 3
servidor al que realizar la solicitud: s2
obteniendo lista de canciones...
[obtenida]
./Milky Chance − Stolen Dance (Album Version).mp3
introduzca una opcion: 5
servidor al que realizar la solicitud: s1
introduce el nombre: ./Milky Chance − Stolen Dance (Album Version).mp3
transfiriendo...
[transferida]
nuevo nombre de la cancion: milky
introduzca una opcion: 6
2 servidor/es: [’s1’, ’s2’]
introduzca una opcion: 7
finalizando ejecucion
*steps to setup the system and all details about it can be found on the documentation
⚠️ disclaimer: this software has been developed for educational purposes, use it at your own risk⚠️