Displaying JSON data from a server in a UICollectionView
I will address a few points that are the most important in my opinion.


Be consistent. 

You're using URL but right after that you're also using NSURL. You're using NSData but later have to cast it to Data. Etc. 

The right way would be, instead, to only use URL and Data, and forget the other types.

let requestURL = URL(string:self.videos[indexPath.row])
let request = URLRequest(url: requestURL!)
let imageUrl = URL(string: imageString)
let imageData = try! Data(contentsOf: imageUrl!)

cell.imageCell.image = UIImage(data: imageData)

Don't force unwrap.

You should not force unwrap your Optionals but use safe unwrapping instead, with if let or guard let.

A classic solution in your case is to have a ready-made placeholder image in your project - that way, if the download of an image fails, you can use the placeholder instead.

if let imageUrl = URL(string: imageString),
    let imageData = try? Data(contentsOf: imageUrl)
{
    cell.imageCell.image = UIImage(data: imageData) 
} else {
    cell.imageCell.image = placeholder
}

Download asynchronously

You are downloading your list of images URLs with Alamofire but you're downloading the images themselves with NSData(contentsOf: imageUrl! as URL). 

The problem is that this method is synchronous and blocks the main thread. If the network is suddenly slow or stops working, your app will lag or freeze.

Instead, download asynchronously with Alamofire, URLSession, etc.

Since you already know how to use Alamofire, I'm showing it with URLSession as an alternative:

if let imageUrl = URL(string: imageString) {
    URLSession.shared.dataTask(with: URLRequest(url: imageUrl)) { (data, response, error) in
        if let data = data {
            DispatchQueue.main.async {
                cell.imageCell.image = UIImage(data: data)  
            }
        } else {
            DispatchQueue.main.async {
                cell.imageCell.image = placeholder
            }
        }
    }.resume()
}


Note that because .dataTask is asynchronous, and because we have to do all UI operations on the main thread, we have to set the image using DispatchQueue.main.async once it's downloaded.

This way, the UI won't freeze if there's network issues.
Style

This one is rather subjective, but in Swift there's a few common style guides you should follow:

Classes should start with an uppercase letter:

class VCWatch

class CVCell


Type declaration should have a space after the colon:

var images: [String] = []
var videos: [String] = []
var lableTitles: [String] = []


Parenthesis are not necessary for a boolean condition:

if imageData != nil {
    cell.imageCell.image = UIImage(data: imageData)
}


You can omit the type declaration when the compiler already knows the type:

let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "VideoCell", for: indexPath) as! cvCell


You can use short syntax for arrays and dictionaries:

[String: AnyObject] // instead of Dictionary&lt;String,AnyObject&gt;