youtube: show cipher string for now - frontends - front-ends for some sites (experiment)
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit d278df39b1e6a28ada817813ecb6a2ed96817b90
 (DIR) parent 4eef4fb9b890ae71f554e996a3a7a542302e68f4
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Fri, 24 Feb 2023 22:49:33 +0100
       
       youtube: show cipher string for now
       
       Diffstat:
         M youtube/cli.c                       |      28 ++++++++++++++++++----------
         M youtube/youtube.c                   |       2 ++
         M youtube/youtube.h                   |       1 +
       
       3 files changed, 21 insertions(+), 10 deletions(-)
       ---
 (DIR) diff --git a/youtube/cli.c b/youtube/cli.c
       @@ -229,27 +229,35 @@ render_video(struct video_response *r)
        #endif
        
        #if 0
       -                OUT("itag: ");
       -                OUTESCAPE(f->itag);
       -                OUT("\n");
       -
                        OUT("Last modified: ");
                        OUTESCAPE(f->lastmodified);
                        OUT("\n");
       -
       -
        #endif
        
       -                OUT("URL:     ");
       -                OUTESCAPE(f->url);
       -                OUT("\n");
       +                if (f->url[0]) {
       +                        OUT("URL:     ");
       +                        OUTESCAPE(f->url);
       +                        OUT("\n");
       +                }
       +
       +                /* encrypted stream */
       +                if (f->signaturecipher[0]) {
       +                        OUT("Signature: ");
       +                        OUTESCAPE(f->signaturecipher);
       +                        OUT("\n");
       +                }
        
                        if (f->mimetype[0]) {
       -                        OUT("Mime-type: ");
       +                        OUT("Mime:    ");
                                OUTESCAPE(f->mimetype);
                                OUT("\n");
                        }
        
       +                if (f->itag > 0) {
       +                        OUT("itag:    ");
       +                        printf("%ld\n", f->itag);
       +                }
       +
                        if (f->qualitylabel[0]) {
                                OUT("Quality: ");
                                OUTESCAPE(f->qualitylabel);
 (DIR) diff --git a/youtube/youtube.c b/youtube/youtube.c
       @@ -335,6 +335,8 @@ processnode_video(struct json_node *nodes, size_t depth, const char *value,
                                                        f->height = getnum(value);
                                                } else if (!strcmp(nodes[4].name, "url")) {
                                                        strlcpy(f->url, value, sizeof(f->url));
       +                                        } else if (!strcmp(nodes[4].name, "signatureCipher")) {
       +                                                strlcpy(f->signaturecipher, value, sizeof(f->signaturecipher));
                                                } else if (!strcmp(nodes[4].name, "qualityLabel")) {
                                                        strlcpy(f->qualitylabel, value, sizeof(f->qualitylabel));
                                                } else if (!strcmp(nodes[4].name, "quality")) {
 (DIR) diff --git a/youtube/youtube.h b/youtube/youtube.h
       @@ -23,6 +23,7 @@ struct search_response {
        struct video_format {
                long itag;
                char url[2048];
       +        char signaturecipher[2048]; /* encrypted stream */
                char mimetype[256]; /* mime-type and video codecs, etc */
                long bitrate;
                long averagebitrate;