Skip to content

Commit

Permalink
build: add codec detection (#224)
Browse files Browse the repository at this point in the history
  • Loading branch information
Kikobeats committed Oct 23, 2019
1 parent 678a9a5 commit b9d2e93
Show file tree
Hide file tree
Showing 4 changed files with 747 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,7 @@ exports['twitter 1'] = "https://video.twimg.com/amplify_video/943561675927519232

exports['vimeo 1'] = "https://gcs-vimeo.akamaized.net/exp=1535800514~acl=%2A%2F823603782.mp4%2A~hmac=1ff98e8349d222bbb11b2e7e3105729a578f83c632a34e252db61034b2b05d6b/vimeo-prod-skyfire-std-us/01/2635/7/188175573/823603782.mp4"

exports['youtube 1'] = "https://r3---sn-aigl6nek.googlevideo.com/videoplayback?fvip=3&mime=video%2Fmp4&ipbits=0&lmt=1507953047549769&ratebypass=yes&key=yt6&requiressl=yes&c=WEB&expire=1535818875&ei=G2iKW_jiIMTjV6OjsqgF&pl=24&mm=31%2C26&ip=95.131.170.224&mn=sn-aigl6nek%2Csn-4g5ednss&initcwndbps=301250&ms=au%2Conr&itag=22&source=youtube&dur=141.502&mv=m&id=o-AMQjKkqESQJsZjtvcGYi-wuToRTYpm-mUp5Ck3IHofXM&sparams=dur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&mt=1535797130&signature=1CE1646A209F0D00E8DD16784BAFCD9E0C9CF06C.0EF24C1CBF4A06AFEB7F404C3E28CE35B354F384"

exports['prefer a video url with audio 1'] = "https://r4---sn-h5q7knel.googlevideo.com/videoplayback?expire=1571841578&ei=yhGwXeTzC4SThAe215OYBA&ip=83.52.76.227&id=o-ACFlADPsUyy7qD9vSD-2V2q6yk8FwqCXgKJvsM2rmFt-&itag=18&source=youtube&requiressl=yes&mm=31%2C29&mn=sn-h5q7knel%2Csn-h5q7rn7l&ms=au%2Crdu&mv=m&mvi=3&pl=16&initcwndbps=1042500&mime=video%2Fmp4&gir=yes&clen=22854271&ratebypass=yes&dur=271.766&lmt=1570273262091495&mt=1571819860&fvip=4&fexp=23842630&c=WEB&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cmime%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&lsparams=mm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AHylml4wRQIgTpLv-aVdtcK4-Hjwzw33cgUJRFeWFlJRbEm80FW_WuECIQDyOxJnR357tWk4vyWzxB-VN2Cf5WOPGauak1AMv0hIHg%3D%3D&sig=ALgxI2wwRgIhAMOqVYJVNPLyxMy7ez0XxyvegXf9vQy1p8qqzT9v8-AwAiEAoxTGB9Vx9-TRfvrUvEiPtle4gbrFXn3LXoAhiHeCHDs="

25 changes: 21 additions & 4 deletions packages/metascraper-media-provider/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ const isM4a = isMIME('m4a')
const isAac = isMIME('aac')
const isWav = isMIME('wav')

const hasCodec = prop => format => format[prop] !== 'none'

const hasAudioCodec = hasCodec('acodec')
const hasVideoCodec = hasCodec('vcodec')

const hasAudio = format =>
isMp3(format) || isM4a(format) || isAac(format) || isWav(format)

Expand All @@ -45,7 +50,7 @@ const hasVideo = format =>

const notDownloadable = format => !includes(format.url, 'download=1')

const getFormatUrls = ({ orderBy, filterBy }) => ({ formats }, filters) => {
const getFormatUrls = ({ orderBy }) => ({ formats }, filters) => {
const url = chain(formats)
.filter(overEvery(filters))
.orderBy(orderBy, 'asc')
Expand All @@ -60,10 +65,22 @@ const getVideoUrls = getFormatUrls({ orderBy: 'tbr' })

const getAudioUrls = getFormatUrls({ orderBy: 'abr' })

const getVideo = data =>
getVideoUrls(data, [hasVideo, isMp4, isHttps, notDownloadable])
const getVideo = data => {
const videoFilters = [
hasVideo,
isMp4,
isHttps,
notDownloadable,
hasVideoCodec
]
return (
getVideoUrls(data, [...videoFilters, hasAudioCodec]) ||
getVideoUrls(data, videoFilters)
)
}

const getAudio = data => getAudioUrls(data, [hasAudio, isHttps])
const getAudio = data =>
getAudioUrls(data, [hasAudio, isHttps, notDownloadable, hasAudioCodec])

const getAuthor = ({ uploader, creator, uploader_id: uploaderId }) =>
find([creator, uploader, uploaderId], str => authorFn(str))
Expand Down
Loading

0 comments on commit b9d2e93

Please sign in to comment.