import * as express from 'express'
-import { CONFIG, THUMBNAILS_SIZE } from '../initializers'
+import { CONFIG, PREVIEWS_SIZE, EMBED_SIZE } from '../initializers'
import { oembedValidator } from '../middlewares'
import { VideoInstance } from '../models'
const maxWidth = parseInt(req.query.maxwidth, 10)
const embedUrl = webserverUrl + video.getEmbedPath()
- let thumbnailUrl = webserverUrl + video.getThumbnailPath()
- let embedWidth = 560
- let embedHeight = 315
+ let thumbnailUrl = webserverUrl + video.getPreviewPath()
+ let embedWidth = EMBED_SIZE.width
+ let embedHeight = EMBED_SIZE.height
if (maxHeight < embedHeight) embedHeight = maxHeight
if (maxWidth < embedWidth) embedWidth = maxWidth
// Our thumbnail is too big for the consumer
if (
- (maxHeight !== undefined && maxHeight < THUMBNAILS_SIZE.height) ||
- (maxWidth !== undefined && maxWidth < THUMBNAILS_SIZE.width)
+ (maxHeight !== undefined && maxHeight < PREVIEWS_SIZE.height) ||
+ (maxWidth !== undefined && maxWidth < PREVIEWS_SIZE.width)
) {
thumbnailUrl = undefined
}
if (thumbnailUrl !== undefined) {
json.thumbnail_url = thumbnailUrl
- json.thumbnail_width = THUMBNAILS_SIZE.width
- json.thumbnail_height = THUMBNAILS_SIZE.height
+ json.thumbnail_width = PREVIEWS_SIZE.width
+ json.thumbnail_height = PREVIEWS_SIZE.height
}
return res.json(json)
})
}
-function generateImageFromVideoFile (fromPath: string, folder: string, imageName: string, size?: string) {
+function generateImageFromVideoFile (fromPath: string, folder: string, imageName: string, size: string) {
const options = {
filename: imageName,
count: 1,
height: 110
}
const PREVIEWS_SIZE = {
- width: 640,
- height: 480
+ width: 560,
+ height: 315
+}
+
+const EMBED_SIZE = {
+ width: 560,
+ height: 315
}
// Sub folders of cache directory
CACHE,
CONFIG,
CONSTRAINTS_FIELDS,
+ EMBED_SIZE,
FRIEND_SCORE,
JOB_STATES,
JOBS_CONCURRENCY,
VideoMethods
} from './video-interface'
+import { PREVIEWS_SIZE } from '../../initializers/constants'
let Video: Sequelize.Model<VideoInstance, VideoAttributes>
let getOriginalFile: VideoMethods.GetOriginalFile
}
createPreview = function (this: VideoInstance, videoFile: VideoFileInstance) {
+ const imageSize = PREVIEWS_SIZE.width + 'x' + PREVIEWS_SIZE.height
+
return generateImageFromVideoFile(
this.getVideoFilePath(videoFile),
CONFIG.STORAGE.PREVIEWS_DIR,
- this.getPreviewName()
+ this.getPreviewName(),
+ imageSize
)
}
const res = await getOEmbed(server.url, oembedUrl)
const expectedHtml = `<iframe width="560" height="315" src="http://localhost:9001/videos/embed/${server.video.uuid}" ` +
'frameborder="0" allowfullscreen></iframe>'
- const expectedThumbnailUrl = 'http://localhost:9001/static/thumbnails/' + server.video.uuid + '.jpg'
+ const expectedThumbnailUrl = 'http://localhost:9001/static/previews/' + server.video.uuid + '.jpg'
expect(res.body.html).to.equal(expectedHtml)
expect(res.body.title).to.equal(server.video.name)
expect(res.body.author_name).to.equal(server.video.author)
- expect(res.body.height).to.equal(315)
expect(res.body.width).to.equal(560)
+ expect(res.body.height).to.equal(315)
expect(res.body.thumbnail_url).to.equal(expectedThumbnailUrl)
- expect(res.body.thumbnail_width).to.equal(200)
- expect(res.body.thumbnail_height).to.equal(110)
+ expect(res.body.thumbnail_width).to.equal(560)
+ expect(res.body.thumbnail_height).to.equal(315)
})
it('Should have a valid oEmbed response with small max height query', async function () {