Skip to content

Latest commit

 

History

History
147 lines (113 loc) · 4.53 KB

README.md

File metadata and controls

147 lines (113 loc) · 4.53 KB

summaly

Installation

npm install git+https://github.com/misskey-dev/summaly.git

Usage

As a function:

import { summaly } from 'summaly';

summaly(url[, opts])

As Fastify plugin: (will listen GET of /)

import Summaly from 'summaly';

fastify.register(Summaly[, opts])

Run the server:

git clone https://github.com/misskey-dev/summaly.git
cd summaly
NODE_ENV=development npm install
npm run build
npm run serve

Options

Property Type Description Default
followRedirects boolean Whether follow redirects true
plugins plugin[] (see below) Custom plugins null

Plugin

interface IPlugin {
	test: (url: URL) => boolean;
	summarize: (url: URL) => Promise<Summary>;
}

urls are WHATWG URL since v4.

Returns

A Promise of an Object that contains properties below:

※ Almost all values are nullable. player should not be null.

Root

Property Type Description
description string The description of the web page
icon string The url of the icon of the web page
sitename string The name of the web site
thumbnail string The url of the thumbnail of the web page
oEmbed OEmbedRichIframe The oEmbed rich iframe info of the web page
player Player The player of the web page
title string The title of the web page
url string The url of the web page

Player

Property Type Description
url string The url of the player
width number The width of the player
height number The height of the player
allow string[] The names of the allowed permissions for iframe

Currently the possible items in allow are:

  • autoplay
  • clipboard-write
  • fullscreen
  • encrypted-media
  • picture-in-picture

See Permissions Policy in MDN for details of them.

Example

import { summaly } from 'summaly';

const summary = await summaly('https://www.youtube.com/watch?v=NMIEAhH_fTU');

console.log(summary);

will be ... ↓

{
	"title": "【アイドルマスター】「Stage Bye Stage」(歌:島村卯月、渋谷凛、本田未央)",
	"icon": "https://www.youtube.com/s/desktop/9318de79/img/favicon.ico",
	"description": "Website▶https://columbia.jp/idolmaster/Playlist▶https://www.youtube.com/playlist?list=PL83A2998CF3BBC86D2018年7月18日発売予定THE IDOLM@STER CINDERELLA GIRLS CG STAR...",
	"thumbnail": "https://i.ytimg.com/vi/NMIEAhH_fTU/maxresdefault.jpg",
	"player": {
		"url": "https://www.youtube.com/embed/NMIEAhH_fTU?feature=oembed",
		"width": 200,
		"height": 113,
		"allow": [
			"autoplay",
			"clipboard-write",
			"encrypted-media",
			"picture-in-picture",
			"web-share"
		]
	},
	"sitename": "YouTube",
	"sensitive": false,
	"url": "https://www.youtube.com/watch?v=NMIEAhH_fTU"
}

Testing

npm run test

License

MIT