Announcement

Collapse
No announcement yet.

Something to participate in

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    just brain storming, but something i would like is to take a screenshot of a video at a certain point., instead of ,say, having to print the screen.
    My Avatars!
    Quake Leagues
    Quake 1.5!!!
    Definitive HD Quake

    Comment


    • #17
      @sylux - guess what? You already can. It was the absolute second or third thing that I put in the player, long ago, but since you didn't know that, you basically invented the idea.

      You name it - already implemented

      *you name it = really, come up with a name. I have been naming these features after you guys but your name has me stumped.

      ------------------------------------------

      Have a "download" button instead of watching it online.


      owner allowed downloads

      I'm not your MOM - officially added to sitephyre.

      ----------


      when I say these things are "officially added" I don't think I need to tell you that that actually means "will be added".


      ------

      about 3rd party download sites:

      These will not work on my site. Even if I gave you the code, explained it to you, and showed you exactly where the videos are stored, you still could not force a download.

      Why you may ask? Well, in order to download something you need to know what it's name is, right?

      lets say you go to

      Sitephyre.com?media=jk43bk4bkjbek5bkbe44j43

      that media id is just that AN ID. The databse needs to be searched for that ID and it returns the actual video name, which may be something like this

      kj4h56k4bk6b45k6b45b64k6bn5b645nmb6mn54b6mnb45mb6m 5n6bm45nb66hjv.flv

      (everything is renamed something that is entirely un-guessable)

      however my permissions are so incredibly strict that there is only 1 (static) user that even has the permission to read the video table. That (static) user doesn't even have the permission to write (at all) - or read any other table.

      there is ONE way in and multiple checks are made to make sure that the request is coming from MY site. I didn't stop there though. You can't even go to any folder anywhere on the entire site. My htaccess is mega strict. As a joke, if you try to go to a folder it spits you out to a page with a fake progress bar and says "Downloading Virus Packages". The bar flies by and then resets, the message then changes to "Installing Virus Packages". When the bar hits the end it says "Viruses Installed Fuckhead!"


      LOL! no viruses (or anything else for that matter) are actually installed. It's just a joke, but if you don't know it's a joke, possibly you will spend a lot of time worrying about nothing. Since none oof the links within the site are pointed at a folder, the ONLY way someone could come across that is if they are trying to fish through my directories.
      Last edited by MadGypsy; 02-08-2013, 06:25 PM.
      http://www.nextgenquake.com

      Comment


      • #18
        how about frame-shot? heh, thats about the best i can come up with.
        My Avatars!
        Quake Leagues
        Quake 1.5!!!
        Definitive HD Quake

        Comment


        • #19
          Do you want more time to think about this? You have lots of it (time).

          I'll totally call the feature frame-shot if you want, but consider something:

          Damage Panel
          Phenomenal Continue
          I'm not your MOM
          ...
          frame-shot

          -------------

          The "I'm not your MOM" one may be confusing to some. My line of thinking was this:

          "I'm not your MOM" = "Do it yourself" - in regards to downloading.

          Maybe that's dumb, but all of this has pretty dumb names ?Damage Panel? (what does that have to do with a user control panel). The point is to have fun. I'm not youTube, I don't have to be all serious and "corporate". I could name all the functions "thing1", "thing2", etc.. who's gonna care?
          http://www.nextgenquake.com

          Comment


          • #20
            The ability to filter videos "YouTube'like" by parameters like:
            Video length
            Title name
            Category
            Views
            etc...

            YouTube has a basic filtering system, it's pretty crappy actually and it makes them look bad when you know it's owned by Google...
            QuakeOne.com
            Quake One Resurrection

            QuakeOne.com/qrack
            Great Quake engine

            Qrack 1.60.1 Ubuntu Guide
            Get Qrack 1.60.1 running in Ubuntu!

            Comment


            • #21
              I actually already have that (sorta). It needs to be developed further but the framework is there. I use a different system though. I'm glad you posted this cause I overlooked "category & video length". The possibility of the rest is already there.

              Looks like I need to add 2 more rows to my video table and update my install script (to start). My system is already set up to include video rank (just throwing that out there)
              http://www.nextgenquake.com

              Comment


              • #22
                Psychological Graphiti

                A white board feature that can be adjusted like a layer.
                If set to transparent then whatever you draw would overlay the video or document below it giving a way to illustrate ideas in real time.
                This could be used as a way to edit media without actually changing it.
                Sort of a digital etch a sketch.
                Layered white it could be a stand alone bbs,guestbook chat whatever.
                WARNING
                May be too intense for some viewers.
                Stress Relief Device
                ....BANG HEAD HERE....
                ---------------------------
                .
                .
                .
                .
                .--------------------------

                Comment


                • #23
                  You basically extended an idea that I was going to implement with the screenshot feature. I was going to make it to where you could take a screenshot and then draw on it and save it.

                  Your method sounds like that "edit" will become a permanent part of the video. This would be very complicated to make, I like it.

                  Blunt Implements - officially added to the "how the F do I do this" list

                  ---

                  edit - ooooh you aren't talking about video per se. That actually wouldn't be that hard. a "chat room" where you draw instead of type. Unfortunately, I can't do it. Requires a CGI bin which is basically never a host feature.
                  Last edited by MadGypsy; 02-08-2013, 08:47 PM.
                  http://www.nextgenquake.com

                  Comment


                  • #24
                    Originally posted by MadGypsy View Post
                    You basically extended an idea that I was going to implement with the screenshot feature. I was going to make it to where you could take a screenshot and then draw on it and save it.

                    Your method sounds like that "edit" will become a permanent part of the video. This would be very complicated to make, I like it.

                    Blunt Implements - officially added to the "how the F do I do this" list

                    ---

                    edit - ooooh you aren't talking about video per se. That actually wouldn't be that hard. a "chat room" where you draw instead of type. Unfortunately, I can't do it. Requires a CGI bin which is basically never a host feature.
                    No not permanent and not a chat room, Just a temp popup window.DHTML
                    I used to do something very similar waaay back when host sites made all your pages run their adds.I found a transparent popup window script to break out of their frames.
                    WARNING
                    May be too intense for some viewers.
                    Stress Relief Device
                    ....BANG HEAD HERE....
                    ---------------------------
                    .
                    .
                    .
                    .
                    .--------------------------

                    Comment


                    • #25
                      Hi fokers

                      MadGiver, here is a code I'm using to have a "download" button.


                      Code:
                      // ==UserScript==
                      // @name        Download video from http://youtube.com/
                      // @version     2.16
                      // @date        2012-12-20
                      // @author      Mike Samokhvalov <[email protected]>
                      // @download    http://www.puzzleclub.ru/files/youtube_com.js
                      // @include     http://youtube.com/watch*
                      // @include     http://*.youtube.com/watch*
                      // @include     http://youtube.com/user*
                      // @include     http://*.youtube.com/user*
                      // @include     https://youtube.com/watch*
                      // @include     https://*.youtube.com/watch*
                      // @include     https://youtube.com/user*
                      // @include     https://*.youtube.com/user*
                      // ==/UserScript==
                      
                      (function(){
                        var showFormat = {
                          'FLV': true,
                          'MP4': true,
                          'WebM': false,
                          '3GP': false
                        };
                      
                        var nextBtn = 'data:image/gif;base64,R0lGODlhFAAUAIAAAP///wAAACH5BAEAAAAALAAAAAAUABQAAAI6hI+pEO0Pw5GrUlrVzWsb/GnhBzaJRyLmNE4lhrqqB6Yy09p6vOr4z3idWrXaz8iJcUbIDCwC7S0rBQA7',
                          prevBtn = 'data:image/gif;base64,R0lGODlhFAAUAIAAAP///wAAACH5BAEAAAAALAAAAAAUABQAAAI6hI+pEO0Pw5GrUlrVzWsnbGDeBDZTiJhkioYlyLSqq8lvHdMrm+t+DpsxRC3eScbBwZKjZDECdTg5BQA7';
                      
                      
                        function getTitle()
                        {
                          if(window.yt && yt.config_ && yt.config_['VIDEO_TITLE'])
                            return decodeURIComponent(yt.config_['VIDEO_TITLE']);
                      
                          var t = document.getElementById('watch-headline-title');
                          if(t)
                          {
                            return t.innerText;
                          }
                      
                          var meta = document.getElementsByTagName('meta');
                          for(var i = 0; i < meta.length; i++)
                          {
                            var name = meta[i].getAttribute('name', false);
                            if(name && name.toLowerCase() == 'title')
                              return meta[i].getAttribute('content', false);
                          }
                      
                          return '';
                        }
                      
                        function getSwfArgs()
                        {
                          if(window.yt && yt.config_ && yt.config_['SWF_ARGS'])
                            return yt.config_['SWF_ARGS'];
                      
                          var t = document.body.innerHTML.match(/[\"\'](?:swf_args|args)[\"\']\s*:\s*(\{[^\}]+\})/i);
                          if(t && t.length > 1)
                            return eval('(' + t[1] + ')');
                      
                          var e = document.getElementsByTagName('embed');
                          for(var i = 0; i < e.length; i++)
                          {
                            var f = e[i].getAttribute('flashvars', false);
                            if(f && f.search(/fmt_map=/i) != -1)
                            {
                              var swfargs = [];
                              f = f.split('&');
                              for(var j = 0; j < f.length; j++)
                              {
                                var p = f[j].split('=', 2);
                                if(p.length == 2)
                                  swfargs[p[0]] = p[1];
                                else if(p.length == 1)
                                  swfargs[p[0]] = '';
                              }
                      
                              return swfargs;
                            }
                          }
                        }
                      
                        function modifyTitle(t)
                        {
                          t = t.replace(/[\x2F\x5C\x3A\x7C]/g, '-');
                          t = t.replace(/[\x2A\x3F]/g, '');
                          t = t.replace(/\x22/g, '\'');
                          t = t.replace(/\x3C/g, '(');
                          t = t.replace(/\x3E/g, ')');
                          t = t.replace(/(?:^\s+)|(?:\s+$)/g, '');
                          return t;
                        }
                      
                        function getDownloadLink(video_id, token, fmt)
                        {
                          return 'http://' + location.host + '/get_video?video_id=' + video_id + '&t=' + token + '&fmt=' + fmt + '&asv=';
                        }
                      
                        function showLinks(l)
                        {
                          var title = getTitle(), titleAttr = '';
                          if(title)
                          {
                            title = modifyTitle(title);
                            titleAttr = '&title=' + encodeURIComponent(title);
                          }
                      
                          var p = document.createElement('div');
                          setStyle(p, {
                            display: 'block',
                            color: '#000',
                            backgroundColor: '#e7eefa',
                            border: '1px solid #c3d0ec',
                            padding: '5px 0',
                            textAlign: 'center'
                          });
                      
                          var fmt_params = {
                            '5': {format: 'FLV', quality: '240p'},
                            '34': {format: 'FLV', quality: '360p'},
                            '35': {format: 'FLV', quality: '480p'},
                            '83': {format: 'FLV', quality: '480p', '3d': true},
                            '18': {format: 'MP4', quality: '360p'},
                            '82': {format: 'MP4', quality: '360p', '3d': true},
                            '22': {format: 'MP4', quality: '720p'},
                            '84': {format: 'MP4', quality: '720p', '3d': true},
                            '37': {format: 'MP4', quality: '1080p'},
                            '85': {format: 'MP4', quality: '1080p', '3d': true},
                            '38': {format: 'MP4', quality: '4k'},
                            '43': {format: 'WebM', quality: '360p'},
                            '100': {format: 'WebM', quality: '360p', '3d': true},
                            '44': {format: 'WebM', quality: '480p'},
                            '101': {format: 'WebM', quality: '480p', '3d': true},
                            '45': {format: 'WebM', quality: '720p'},
                            '102': {format: 'WebM', quality: '720p', '3d': true},
                            '46': {format: 'WebM', quality: '1080p'},
                            '103': {format: 'WebM', quality: '1080p', '3d': true},
                            '17': {format: '3GP', quality: '144p'},
                            '36': {format: '3GP', quality: '240p'}
                          };
                      
                          var order = [5, 34, 35, 18, 22, 37, 38, 43, 44, 45, 46, 17, 36];
                          var order3d = [83, 82, 84, 85, 100, 101, 102];
                      
                          var s1 = {
                            fontWeight: 'bold',
                            whiteSpace: 'nowrap'
                          };
                      
                          var s2 = {
                            fontSize: '85%',
                            fontWeight: 'normal',
                            marginLeft: '3px',
                            whiteSpace: 'nowrap'
                          };
                      
                          var sep = false, hidden = false;
                          for(var i = 0; i < order.length; i++)
                          {
                            var fmt = order[i].toString();
                            if(l[fmt])
                            {
                              var a = document.createElement('a');
                              a.href = l[fmt] + titleAttr;
                              a.innerHTML = fmt_params[fmt].format;
                              a.className = 'format-' + fmt_params[fmt].format;
                              setStyle(a, s1);
                      
                              var s = document.createElement('span');
                              s.innerHTML = fmt_params[fmt].quality;
                              setStyle(s, s2);
                              a.appendChild(s);
                      
                              if(!showFormat[fmt_params[fmt].format])
                              {
                                a.style.display = 'none';
                      
                                hidden = true;
                              }
                              else if(sep)
                              {
                                a.style.marginLeft = '15px';
                              }
                      
                              p.appendChild(a);
                              sep = true;
                            }
                          }
                      
                          s1.marginLeft = '15px';
                      
                          for(var i in l)
                          {
                            if(!fmt_params[i])
                            {
                              var a = document.createElement('a');
                              a.href = l[i] + titleAttr;
                              a.innerHTML = i;
                              setStyle(a, s1);
                              p.appendChild(a);
                            }
                          }
                      
                      
                          if(hidden)
                          {
                            var btn = document.createElement('img');
                            btn.src = nextBtn;
                            setStyle(btn, {
                              marginLeft: '15px',
                              verticalAlign: 'middle',
                              opacity: 0.4
                            });
                      
                            btn.addEventListener('click', function(){
                              var show = false;
                      
                              if(btn.className == 'show-all')
                              {
                                btn.className = '';
                                btn.src = nextBtn;
                              }
                              else
                              {
                                btn.className = 'show-all';
                                btn.src = prevBtn;
                                show = true;
                              }
                      
                              for(var i in showFormat)
                              {
                                if(!showFormat[i])
                                {
                                  var a = document.querySelectorAll('a.format-' + i);
                                  if(a && a.length > 0)
                                  {
                                    for(var j = 0; j < a.length; j++)
                                    {
                                      if(show)
                                      {
                                        var prev = a[j].previousSibling;
                                        setStyle(a[j], {
                                          display: '',
                                          marginLeft: (prev && prev.tagName == 'A') ? '15px' : 0
                                        });
                                      }
                                      else
                                        setStyle(a[j], {display: 'none', marginLeft: 0});
                                    }
                                  }
                                }
                              }
                      
                              return false;
                            }, false);
                      
                            p.appendChild(btn);
                      
                          }
                      
                      
                          sep = false;
                          for(var i = 0; i < order3d.length; i++)
                          {
                            var fmt = order3d[i].toString();
                            if(l[fmt])
                            {
                              if(!sep)
                              {
                                p.appendChild(document.createElement('br'));
                                p.appendChild(document.createTextNode('3D:'));
                                sep = true;
                              }
                      
                              var a = document.createElement('a');
                              a.href = l[fmt] + titleAttr;
                              a.innerHTML = fmt_params[fmt].format;
                              a.className = 'format-' + fmt_params[fmt].format;
                              setStyle(a, s1);
                      
                              var s = document.createElement('span');
                              s.innerHTML = fmt_params[fmt].quality;
                              setStyle(s, s2);
                              a.appendChild(s);
                      
                              if(!showFormat[fmt_params[fmt].format])
                                a.style.display = 'none';
                      
                              p.appendChild(a);
                              sep = true;
                            }
                          }
                      
                          document.body.insertBefore(p, document.body.firstChild);
                        }
                      
                        function onLoad()
                        {
                          var swfargs = getSwfArgs();
                          if(!swfargs)
                            return;
                      
                          var token = swfargs.t ? swfargs.t : swfargs.token;
                          if(!token)
                            return;
                      
                          var video_id = swfargs.video_id;
                          if(!video_id)
                          {
                            var m = location.href.match(/\/watch\?(?:.+&)?v=([\w\-]+)/i);
                            if(m && m.length > 1)
                              video_id = m[1];
                          }
                      
                          if(!video_id)
                            return;
                      
                          var u = swfargs['fmt_url_map'];
                          if(!u)
                            u = swfargs['url_encoded_fmt_stream_map'];
                      
                          if(!u)
                            return;
                      
                          var l = {};
                      
                          if(u.search(/url=http/i) > -1)
                          {
                            u = u.split(',');
                            for(var i = 0; i < u.length; ++i)
                            {
                              var p = parseQuery(u[i]);
                              if(p.url)
                              {
                                if(p.url.search(/(\?|&)sig(nature)?=/i) == -1)
                                {
                                  if(p.sig)
                                    p.url += '&signature=' + encodeURIComponent(p.sig);
                                  else if(p.signature)
                                    p.url += '&signature=' + encodeURIComponent(p.signature);
                                }
                      
                                if(p.url.search(/(\?|&)itag=/i) == -1)
                                {
                                  if(p.itag)
                                    p.url += '&itag=' + encodeURIComponent(p.itag);
                                }
                      
                                var fmt = p.url.match(/(?:\?|&)itag=(\d+)/i);
                                if(fmt && fmt.length > 1)
                                {
                                  p.url = p.url.replace(/(\?|&)sig=/i, '$1signature=').
                                    replace(/\\u0026/ig, '&').replace(/\\\//g, '/');
                      
                                  l[fmt[1]] = p.url;
                                }
                              }
                            }
                          }
                          else
                          {
                            u = decodeURIComponent(u);
                            u = u.replace(/\\u0026/ig, '&').replace(/\\\//g, '/');
                            u = u.replace(/,(\d+)\|/g, "\n$1|");
                            u = u.split('\n');
                      
                            if(u && u.length > 0)
                            {
                              for(var i = 0; i < u.length; i++)
                              {
                                var t = u[i].split('|');
                                if(t && t.length == 2)
                                {
                                  l[t[0]] = t[1];
                                  if(t[0] == '18')
                                    fmt18 = true;
                                }
                              }
                            }
                          }
                      
                          showLinks(l);
                          return;
                        }
                      
                      
                        function setStyle(node, style)
                        {
                          if(!node || !style)
                            return;
                      
                          for(var i in style)
                            node.style[i] = style[i];
                        }
                      
                      
                        function parseQuery(query)
                        {
                          var k = {};
                          var re = /[?&]?([^=]+)(?:=([^&]*))?/g;
                          while(m = re.exec(query))
                          {
                            if(m[1] && m[2])
                              k[m[1]] = decodeURIComponent(m[2]);
                            else if(m[1])
                              k[m[1]] = '';
                          };
                      
                          return k;
                        }
                      
                      
                        if(typeof(opera.version) == 'function' && opera.version() >= 9)
                          document.addEventListener('DOMContentLoaded', onLoad, false);
                        else
                          document.addEventListener('load', onLoad, false);
                      })();

                      Comment


                      • #26
                        That may work to download youTube, but it isn't gonna work on SitePhyre. As a matter of fact that is way too long & requires javascript. I could make a link to download SitePhyre videos that not only hides the link, but is only like 10 lines. Here is the gist.


                        on page sitephyre.com?media=6jhk54390jkrfhdkjsfr9fhuk266
                        Code:
                        <a href="return_video.php?media=<?php echo $_GET['media']; ?>">click to download</a>
                        return_video.php
                        Code:
                        <?php
                        $db = new Database();
                        if (isset($_GET['media']))
                        {
                            $media = $_GET['media'];
                            $sql = "SELECT video_path FROM videos WHERE video_id = '$media'";
                            return file($db->get_query($sql));
                        }
                        ?>
                        this probably isn't 100% accurate. I haven't tested it or anything, but the concept is there and it can be tweaked one way or another to work.
                        Last edited by MadGypsy; 02-09-2013, 06:56 PM.
                        http://www.nextgenquake.com

                        Comment


                        • #27
                          In regards to the activity on this website, I can use my resource of the Facebook page with over 18,500 Likes to try and promote this website to those who may not even know it exists.

                          I discovered this site when searching for content to post in order to gather more followers, and therefore reach more Quake fans.

                          The community here, from what I can tell so far, is very knowledgeable and helpful, and welcomes new members with politeness and respect - making the transition in very easy

                          So from now on, any News posted on the Home Page will also be directed to my Quake Page so that it links to "quakeone.com"
                          Even if that brings in just one or two ACTIVE members, I'd be happy to know I did something useful.

                          I hope this helps in at least the slightest way.
                          +Rep! I'm going to the top!

                          Comment


                          • #28
                            Good stuff, bro!
                            http://www.nextgenquake.com

                            Comment


                            • #29
                              Shit, whatever helps
                              I just made a post suggesting people sign up and check you guys out, and that they can find me under "Kliffington"
                              Last edited by Kliffington; 02-10-2013, 09:34 AM.
                              +Rep! I'm going to the top!

                              Comment

                              Working...
                              X