diff --git a/UyTube_aplicacion/src/Logica/Clases/Canal.java b/UyTube_aplicacion/src/Logica/Clases/Canal.java
index 6fff19cf3f1198c17fd051aa1585b94d7ad1a32e..10a1602c06300f599801c4c130d28a02619960b8 100644
--- a/UyTube_aplicacion/src/Logica/Clases/Canal.java
+++ b/UyTube_aplicacion/src/Logica/Clases/Canal.java
@@ -11,24 +11,22 @@ import java.util.ArrayList;
 import java.util.Map;
 import java.util.TreeMap;
 
-
 public class Canal {
-    
+
     private static int contadorCanal = 1;
     private int id;
     private String nombre;
     private String descripcion;
     private Privacidad privacidad;
-    private Map<Integer,ListaDeReproduccion> misListas;
-    private Map<Integer,Video> misVideos;
-    
-    
+    private Map<Integer, ListaDeReproduccion> misListas;
+    private Map<Integer, Video> misVideos;
+
     public Canal() {
         this.id = getNuevoId();
         this.misListas = new TreeMap();
         this.misVideos = new TreeMap();
     }
-    
+
     public Canal(int id, String nombre, String descripcion, Privacidad privacidad) {
         this.id = id;
         this.nombre = nombre;
@@ -71,134 +69,163 @@ public class Canal {
         this.privacidad = privacidad;
     }
 
- public static int getNuevoId(){
-     return contadorCanal++;
- }
-    public void actualizarListasPorDefecto(){
-    
+    public static int getNuevoId() {
+        return contadorCanal++;
     }
 
-    public void agregarComentarioAVideo(int id, DtComentario comentario, Usuario usuario){
+    public void actualizarListasPorDefecto() {
+
+    }
+
+    public void agregarComentarioAVideo(int id, DtComentario comentario, Usuario usuario) {
         this.misVideos.get(id).agregarComentario(comentario, usuario);
     }
-    
-    public void agregarComentarioAVideo(int id, int idComentario, DtComentario comentario, Usuario usuario){
+
+    public void agregarComentarioAVideo(int id, int idComentario, DtComentario comentario, Usuario usuario) {
         this.misVideos.get(id).agregarComentario(idComentario, comentario, usuario);
     }
-    
-    public void agregarListaParticular(DtListaDeReproduccion listaReproduccion){
-        int id = ListaDeReproduccion.getNuevoId();
-        ListaDeReproduccion ldr = new ListaDeReproduccion(id, listaReproduccion.getNombre(), listaReproduccion.getPrivacidad(),listaReproduccion.getTipo(), listaReproduccion.getCategoria());
-        this.misListas.put(id, ldr);
-    }
-    
-    public void quitarValoracion(int id, String nickname){
 
+    public void agregarListaParticular(DtListaDeReproduccion listaReproduccion) {
+        int idLdr = ListaDeReproduccion.getNuevoId();
+        ListaDeReproduccion ldr = new ListaDeReproduccion(idLdr, listaReproduccion.getNombre(), listaReproduccion.getPrivacidad(), listaReproduccion.getTipo(), listaReproduccion.getCategoria());
+        this.misListas.put(idLdr, ldr);
     }
-    
-    public void agregarModificarValoracion(int id, DtValoracion valoracion, Usuario usuario){
+
+//Aun no está implementada en la clase Video
+//public void quitarValoracion(int id, String nickname){
+    // this.misVideos.get(id).quitarValoracion();
+//}
+    public void agregarModificarValoracion(int id, DtValoracion valoracion, Usuario usuario) {
         this.misVideos.get(id).agregarModificarValoracion(valoracion, usuario);
     }
-    
-    public void agregarVideo(DtVideo video){
-        int id = Video.getNuevoId();
-        Video vd = new Video(id, video.getNombre(), video.getDescripcion(), video.getDuracion(), video.getFechaPublicacion(), video.getUrlVideoOriginal(), video.getCategoria());
-        this.misVideos.put(id, vd);
+
+    public void agregarVideo(DtVideo video) {
+        int idVideo = Video.getNuevoId();
+        Video vd = new Video(idVideo, video.getNombre(), video.getDescripcion(), video.getDuracion(), video.getFechaPublicacion(), video.getUrlVideoOriginal(), video.getCategoria());
+        this.misVideos.put(idVideo, vd);
     }
-    
-    public void agregarVideoALista(int id, Video video){
+
+    public void agregarVideoALista(int id, Video video) {
         this.misListas.get(video.getId()).agregarVideoA(video);
     }
 
-    public DtCanal getDT(){
+    public DtCanal getDT() {
         return new DtCanal(this.id, this.nombre, this.descripcion, this.privacidad);
     }
 
-    public ArrayList<DtComentario> listarComentariosDeVideo(int id){
+    public ArrayList<DtComentario> listarComentariosDeVideo(int id) {
         return this.misVideos.get(id).listarComentarios();
     }
 
-    public ArrayList<DtListaDeReproduccion> listarListasDeReproduccion(boolean x){
-         ArrayList<DtListaDeReproduccion> ret = new ArrayList();
+    public ArrayList<DtListaDeReproduccion> listarListasDeReproduccion(boolean x) {
+        ArrayList<DtListaDeReproduccion> ret = new ArrayList();
 
-            // para cada elemento en misVideos
-            /**
-             * este for no es normal, se declara la variable m que es de tipo
-             * Entrada de Map (como un nodo arbol), y autmaticamente la hace avanzar
-             * por todas las entradas de la coleccion.
-             * De la entrada actual se puede obtener la Key y el Valor almacenado
-             */
-            for (Map.Entry<Integer, ListaDeReproduccion> m : misListas.entrySet()){
-                // hace un getDT y lo agrega a la coleccion de retorno
-                ret.add(m.getValue().getDt());
-            }
+        for (Map.Entry<Integer, ListaDeReproduccion> m : misListas.entrySet()) {
+            ret.add(m.getValue().getDt());
+        }
 
-            return ret;
+        return ret;
     }
-    
-    public ArrayList<DtValoracion> listarValoracionesDeVideo(int id){
-            return this.misVideos.get(id).listarValoraciones();
+
+    public ArrayList<DtValoracion> listarValoracionesDeVideo(int id) {
+        return this.misVideos.get(id).listarValoraciones();
 
     }
-    
-    public ArrayList<DtVideo> listarVideos(){
-         ArrayList<DtVideo> ret = new ArrayList();
 
-            // para cada elemento en misVideos
-            /**
-             * este for no es normal, se declara la variable m que es de tipo
-             * Entrada de Map (como un nodo arbol), y autmaticamente la hace avanzar
-             * por todas las entradas de la coleccion.
-             * De la entrada actual se puede obtener la Key y el Valor almacenado
-             */
-            for (Map.Entry<Integer, Video> m : misVideos.entrySet()){
-                // hace un getDT y lo agrega a la coleccion de retorno
-                ret.add(m.getValue().getDt());
-            }
+    public ArrayList<DtVideo> listarVideos() {
+        ArrayList<DtVideo> ret = new ArrayList();
+
+        // para cada elemento en misVideos
+        /**
+         * este for no es normal, se declara la variable m que es de tipo
+         * Entrada de Map (como un nodo arbol), y autmaticamente la hace avanzar
+         * por todas las entradas de la coleccion. De la entrada actual se puede
+         * obtener la Key y el Valor almacenado
+         */
+        for (Map.Entry<Integer, Video> m : misVideos.entrySet()) {
+            // hace un getDT y lo agrega a la coleccion de retorno
+            ret.add(m.getValue().getDt());
+        }
 
-            return ret;
+        return ret;
     }
 
-    public ArrayList<DtVideo> listarVideosDeListaDeReproduccion(int id){
+    public ArrayList<DtVideo> listarVideosDeListaDeReproduccion(int id) {
         return this.misListas.get(id).listarVideos();
     }
-    
-    public void modificar(DtCanal canal){
-            this.nombre = canal.getNombre();
-            this.descripcion = canal.getDescripcion();
-            this.privacidad = canal.getPrivacidad();
+
+    public void modificar(DtCanal canal) {
+        this.nombre = canal.getNombre();
+        this.descripcion = canal.getDescripcion();
+        this.privacidad = canal.getPrivacidad();
     }
-    
-    public void modificarListaDeReproduccion(DtListaDeReproduccion ldr){
-            this.misListas.get(ldr.getId()).modificar(ldr);
+
+    public void modificarListaDeReproduccion(DtListaDeReproduccion ldr) {
+        this.misListas.get(ldr.getId()).modificar(ldr);
     }
 
-    public void modificarVideo(DtVideo video){
+    public void modificarVideo(DtVideo video) {
+        this.misVideos.get(video.getId()).modificar(video);
+    }
 
-    } 
+    public ArrayList<DtListaDeReproduccion> obtenerListasEnCategoria(String cat) {
+        ArrayList<DtListaDeReproduccion> ret = new ArrayList();
 
-    public ArrayList<DtListaDeReproduccion> obtenerListasEnCategoria(String cat){
-        return new ArrayList();
+        // para cada elemento en misVideos
+        /**
+         * este for no es normal, se declara la variable m que es de tipo
+         * Entrada de Map (como un nodo arbol), y autmaticamente la hace avanzar
+         * por todas las entradas de la coleccion. De la entrada actual se puede
+         * obtener la Key y el Valor almacenado
+         */
+        for (Map.Entry<Integer, ListaDeReproduccion> m : misListas.entrySet()) {
+            // hace un getDT y lo agrega a la coleccion de retorno
+            if (misListas.get(m.getValue()).getCategoria().equals(cat)) {
+                ret.add(m.getValue().getDt());
+            }
+        }
+
+        return ret;
     }
-    
-    public DtVideo obtenerDtVideo(int id){
+
+    public DtVideo obtenerDtVideo(int id) {
         return this.misVideos.get(id).getDt();
     }
-    
-    public Video obtenerVideo(int id){
-        return null;
+
+    public Video obtenerVideo(int id) {
+        return this.misVideos.get(id);
     }
-    
-    public ArrayList<DtVideo> obtenerVideosEnCategoria(String cat){
-        return new ArrayList();
+
+    public ArrayList<DtVideo> obtenerVideosEnCategoria(String cat) {
+        ArrayList<DtVideo> ret = new ArrayList();
+
+        // para cada elemento en misVideos
+        /**
+         * este for no es normal, se declara la variable m que es de tipo
+         * Entrada de Map (como un nodo arbol), y autmaticamente la hace avanzar
+         * por todas las entradas de la coleccion. De la entrada actual se puede
+         * obtener la Key y el Valor almacenado
+         */
+        for (Map.Entry<Integer, Video> m : misVideos.entrySet()) {
+            // hace un getDT y lo agrega a la coleccion de retorno
+            if (misVideos.get(m.getValue()).getCategoria().equals(cat)) {
+                ret.add(m.getValue().getDt());
+            }
+        }
+
+        return ret;
     }
-    
-    public void quitarVideoDeListaDeReproduccion(int idLista, int idVideo){
-        
+
+    public void quitarVideoDeListaDeReproduccion(int idLista, int idVideo) {
+        this.misListas.get(idLista).quitarVideo(idVideo);
+    }
+
+    public boolean validarListaParticular(int idLista) {
+        return this.misListas.get(idLista).getTipo().toString().equals("PARTICULAR");
     }
-    
-    public boolean validarListaParticular(String lista){
-        return false;
+
+    public DtValoracion obtenerValoracion(int id, String nickname) {
+        return this.misVideos.get(id).obtenerValoracion(nickname);
     }
 
-}
\ No newline at end of file
+}
diff --git a/UyTube_aplicacion/src/Logica/main.java b/UyTube_aplicacion/src/Logica/main.java
index ba0d3f599c1db076db64a9b034037a1845e2cfbf..911451d24179437d75744a97dd1faf6ef6df0897 100644
--- a/UyTube_aplicacion/src/Logica/main.java
+++ b/UyTube_aplicacion/src/Logica/main.java
@@ -4,5 +4,6 @@ import Logica.*;
 
 public class main {
     public static void main(String[] args) {
+
     }
 }