shithub: nvi

ref: 265d50f4d363db60765b30697cd1c920190fd6ca
dir: /nvi.h/

View raw version
typedef struct Info Info;
typedef struct Format Format;

struct Format {
	char *url;
	char *type;
	char *quality; /* "unknown" for audio, "360p"/etc for video */
	vlong sz;
	int included; /* Iaudio|Ivideo */
	int fps;
	int id;
};

struct Info {
	char *author;
	char *title;
	char *description;
	uvlong published;
	uvlong duration;
	Format *fmt;
	int nfmt;
};

enum {
	Cdownload,
	Cinfo,

	Iaudio = 1<<0,
	Ivideo = 1<<1,
};

extern int cmd;
extern int debug;

Info *peertube(char *url);
Info *youtube(char *vid);

int pipeexec(int *fd, char *file, char **argv);
void procwait(void);
char *readall(int f);
int hget(char *url, int out);
char *estrdup(char *s);
int alldigit(char *s);

#pragma varargck type "Z" vlong
int Zfmt(Fmt *f);

#pragma varargck type "P" uvlong
int Pfmt(Fmt *f);