UP | HOME

Genshiken - The free video downloader/streaming client

Table of Contents


For those who wish to learn about Genshiken: Review this file!

Please Note:

Each page, if viewing this document online, is programmed to behave like an info buffer.
Enter `?` to learn the keybindings for navigating this website.

To view the source code for this website, if in GNU IceCat, Enter: `C-c u`.
To view the corresponding source code used to create this website, click the "Show Org source" button at the bottom of this page.

genshiken-logo

Figure 1: Learn about Genshiken - The free video downloader/streaming client

Last modified on December 30, 2016 at 22:15:44


Org mode unicorn logo TEDxGeneva Presentation Emacs

Learn more about this website: View the HTML sources; Validate HTML; JavaScript License Information

Copyleft © 2015-2016 Michael Pagan

Free Documentation, for free software This website is licensed under the GNU Free Documentation License. Based on a work at cvs.savannah.gnu.org, with the Invariant Sections being just "What is the purpose of Genshiken?" Code blocks are licensed under the GNU General Public License v3, or later.

1 What is it?

Fenice-using-the-command-line


Genshiken is a bash(1)1 script designed to fetch embedded video/image links on a website, parse them for a valid URL2, and then sends the URL as an argument3 to either: GNU Wget; a media player; or an image viewer. The idea is to read websites like a playlist of videos.



  • In this documentation:
    • The proper name for this software is Genshiken
    • The system name for this software is genshiken
    • The current version is 0.5.2
    • This copy of Genshiken comes with no price; the official distribution is gratis.
    • Ps
      Although I, Michael Pagan, am the author…

      I don't claim ownership of Genshiken, because the practice of monopolizing ideas is simply preposterous when one understands that your freedom needs free software; thus, I decided this software should be free; thus, you are free to control this software; and finally, that's why this software is called: Genshiken - The free video downloader/streaming client!

1.1 What is the purpose of Genshiken?

I believe in...

Figure 3: Art by :legosz:

There is a bit of philosophy behind why Genshiken was created. I will explain the reason why Genshiken is free software, and why you deserve to use it in freedom. If you are new to free software and the idea of sharing knowledge, data, or software appears alien to you, then I would suggest you study the forthcoming links and footnotes to gain a better understanding. Most references link back to http://www.fsf.org/. I have quite a bit to say, so if you're not interested in reading my essay– which is what this subsection comprises of– then enter g 1.2 <RET> or press N (not n, unless you are in Info-mode) on your keyboard to move on.

1.1.1 Without software freedom, we can't control how we access our data!

We demand software freedom now

Most websites load media files using proprietary software (a.k.a. nonfree software), and distribute said media in proprietary formats– all of which restrict the user's freedom. According to John Sullivan, Executive Director of the FSF4: When software is proprietary, that means that some company claims ownership of it, and through that ownership claim, imposes restrictions on users as to how they can or can't use the software. People who commonly use nonfree software may even feel like there is nothing wrong with using YouTube– the consequence, being your dependence on software which actively restricts you. Although there exists nonfree software in YouTube, a tech-savvy user can still view the media using free software like youtube-dl. Who knows how long this may be true, for Google constantly changes the way videos are distributed on YouTube– the same way Microsoft keeps changing Word format.

DRM5 streaming dis-services, however, are different. Streaming dis-services, such as Netflix, Pandora, Spotify, and iTunes, implement DRM which actively prevents you from viewing media files with free software, and from sharing your copies of media that you purchased. Some companies, like Amazon6, even consider this malware to be a desirable feature. As the FSF has already identified: the initial injustice of proprietary software often leads to further injustices: malicious functionalities. DRM is a visible type of malware that proprietary software companies expect users to tolerate. I only bring this up, because my software is the direct opposite of theirs in terms of ethics and purpose: One implements DRM, while the other does not; one restricts/ensnares the user, while the other frees/liberates the user; one enforces dependence and subjugation, while the other encourages development and community. There are several proprietary companies that use or make nonfree software in an effort to subjugate users, so what should we do in response to that? Sometimes, if we want to keep our freedom, we need to make sacrifices. But the kind of sacrifices I'm talking about are small; any ethical person can make these kinds of sacrifices, in order to protect their freedom.

1.1.2 Is it OK for companies to create malware, like DRM? What are they trying to accomplish?

The real purpose behind copyright

The idea behind DRM, is to subject all users to a system that prevents copyright infringement. In reality, though, this software exists to restrict users from controlling their software; from sharing digital media; from cooperating with other users; from maintaining anonymity and privacy; and finally– like all proprietary software– it gives the owner unjust power over the user. We don't need such defective software, and we certainly don't need the large scale surveillance that it employs. No one should have this kind of power, so why encourage this malpractice, and why use propaganda terms that are in favor of DRM and other types of malware?

Malware, by definition, mistreats the user– never forget that; no ethical reason or justifiable defense exists for those implementing it. To implement malware is malicious, because the mistreatment of users is irrational, and can make people anti-social if they believe that sharing their copies of digital information (e.g. media files, books, software, etc.) will brand them as piratessomeone who attacks and steals from a ship at sea. Ignore any propaganda definition that implies that the word piracy involves copyright infringement. I'm not only talking about files that you can easily download off of the internet; I'm talking about files that you pay for in order to access, or store a copy of. You are not allowed to make copies of your own media files, if it is encumbered with DRM!

Copying data means you are reproducing the original digital work in the form of `ones' and `zeroes', which is binary data for computers to read; whereas, sharing data means you are redistributing a copy of said original work. Reproduction is not the same as theft! The former involves recreating the original copy; the ladder involves physically taking the original copy. Just to let you know: It is physically impossible to steal something as intangible as digital information. If I haven't gotten through to you yet, riddle me this:

How can anyone say that you are pirating data, when you are the owner of said data, or when the data in question is just a copynot the original? This vague assumption proposes that you are capable of stealing information from yourself or others! How ludicrous!? Information can't be stolen, and damages or losses are not incurred when you make copies of information.


  • In conclusion with the above– for illustrative purposes– please examine the following scenarios:
    • I dare you to steal the text on this screen! Go on, remove the text off of this website. Well, did you steal it, yet? Oh! That's right… it can't be stolen, only copied.
    • Let's pretend this website was published using a nonfree license (it's not). Now let's say that the only way that you can access this information, is to install some secret, restrictive software that will allow you to view this website, in such a way that you can't copy it.
      • Ok, the DRM software is installed. After a few corporate click-throughs, you activate the nonfree software. You are now viewing this website, and noticed that all copy commands have been disabled– as intended, of course, since you are not allowed to have freedom.
      • Now, for the questions:
        1. What stops you from recreating this nonfree website using a pen, paper, and a free text editor on another computer?
        2. If the website in question was streaming DRM-encumbered media, what would prevent you from copying this media with a video camera? Sure, there might be a loss in quality, but you can still copy it.
        3. If this DRM-laden software required you to buy a sensor for your computer, that would detect if unauthorized people were in the room watching DRM videos… would you still install it?
          • Wouldn't this be an invasion of your privacy?
          • Wouldn't this be considered mass-surveillance?
          • Wouldn't this make society anti-social, knowing that people can't access their data without getting spied on; knowing that they can be censored when they publish their data?
            1. Facebook users may not understand this sentiment, and may unknowingly like spyware on websites; fortunately, there already exists free replacements for Facebook.
              • Yes, Facebook uses spyware and it is considered to be a mass-surveillance engine. Because this spyware is a form of malware, and since Facebook uses nonfree software in general: You have no control of your data on Facebook, and it can collect more data about you from like buttons on other websites. It uses this type of Malware to trace and track users, and to create personal profiles of them– even if they have no Facebook account.
              • Facebook like buttons are the spyware! Learn more about Facebook Spyware.
              • If you read their privacy policy, then you'll learn that not only is Facebook directly in control of your data, but it can also turn it over to a third party– like big brother– at their discretion at anytime. This implies that they actually can– regardless of what they say– turn over your PII (a.k.a Personally Identifiable Information) if someone with more authority than Facebook coerces them to provide it. Because your data exists on their server, there is no guarantee that when you delete your account that it's actually being removed– the very nature of nonfree software prevents you from verifying this. Since their privacy policy mandates that they must collect information on you, then that means their privacy policy, like Google's, means no privacy for you.
            2. Users who are interested in social media may try GNU Social, if they wish to avoid malware commonly found on proprietary social media dis-services, like Facebook.
              • This software provides microblogging capabilities similar to Facebook; however, the difference is that you can use it in freedom. Users are in control of the software, and can even implement their own versions on their servers.
              • Because you are not being forced to communicate and store all of your data onto a single server, this software creates a decentralized network that promotes privacy, eliminates censorship, and gives you the freedom to control your data– all of which, is on the contrary for Facebook.
              • Since GNU Social servers are federated, users may communicate with each other even if their accounts exist on other servers– just like with XMPP (formerly Jabber).
          • Is it not frustrating to realize that someone else is in control of what you are doing on your own computer?
  • The only thing DRM is effective at, is stopping users from sharing their own copies of digital information with each other7. This malware creates disunity between users, which prevents public cooperation and threatens the very autonomy and spirit of our community!
    • Proponents of DRM, who wish to legitimize this malware, act against the public's interest. How can we learn, if we are restricted from sharing what we know?
    • When your data is DRM-free, it's portable, and you can make copies to view on other devices you own; however, if your data is encumbered with DRM, it becomes immobile, and remains constrained within the confines of its digital prison.
    • Information is not designed to be locked away; it is designed to be shared. Information would not exist, if people never saw a reason to inform. How can we inform, if our information is restricted and uncommunicable?
    • The only solution is to reject nonfree software, for this is software that seeks to restrict us– some, in more ways than others. DRM– in this respect– stands out as the type of software that should never be accepted by any society, for it takes away control of our programs and personal information.
  • Maybe in the future, businesses will start selling DRM-paper that can only record information from DRM-pens.
    • The DRM-paper will have a fingerprint sensor that will only allow people to write on it, if they've already submitted their fingerprints to a corporate or federal database.
    • The DRM-paper can store authorized fingerprints inside it's miniature database, which will only allow authorized people to read what was written. You know what that means… alternatives to circumvent this technology could become outlawed soon after. Citizens may no longer find it strange for proprietary software companies to work hand-in-hand with their govenments; thus, the corruption begins.
  • Maybe in the future, businesses will start selling DRM-pens that can only write information that hasn't been discovered, or owned yet. Once all information has been seized and declared as nonfree, pens may no longer function as intended anymore.
    • As you write with your DRM-pen, the pen will make constant checks via its network connection to see if what you are writing already exists in their database. If what you wrote matches something under copyright, patent, or trademark laws, and it is not under a free license… the ink will vanish off the face of the page!
    • You won't be told why this is happening, but you'll know the reason. Someone owns that knowledge, and what you wrote needs to be revised to reinvent the wheel, so to speak– which may be hard to do, if the wheel itself was patented, and that's what you were writing about.
    • When businesses start adopting DRM-pens and other subjugating devices, free software activists will protest; however, their efforts may be to no avail for they usually only represent a minority of, perhaps, 1% in the current population. One imaginary activist excaimed:

      Is it right to call something a right, when that "right" takes away our rights? Perhaps we should call this riduculous law copywrong, for I hardly see any rights being preserved by these wrongdoings. The same can be said for DRM; how dare you take away our copying machines and public libraries!?

      Sadly, this was a voice that was gradually silenced…

    • Time passes and the DRM-pens become even more malicious, and can now only load authorized DRM-ink. The ink is holographic and multi-colored; a design chosen in order to distract readers, and to make the information harder to remember and duplicate. The ink is also laced with psychedelic chemicals in order to prevent savants from mentally photographing the information. These poisons were strictly opposed at first; however, after banning the use of copying machines, there was little resistance when DRM-authorities declared it to be the next logical step– all under the auspices of copyright, which was slowly being rebranded as copywrong by protesters.
  • Maybe in the future, every single media file will be distributed with DRM. Corrupt mathematicians will have created an algorithm to detect if your camera is capturing something that appears eerily similar to what already exists in a DRM media files database– a restricted repository containing data which you own, but businesses will have already convinced you that it's safer in their hands!
    • The moment the DRM in a camera detects you copying DRM-data, the camera will refuse to continue recording.
    • If you try to correct this malicious behavior, then the owner of the DRM program would proceed to brick your camera in order to prevent you from using it in freedom.
      • The concept of bricking– or rendering hardware non-functional– is becoming standard practice by proprietary software companies today.
      • Computers that contain 100% nonfree software, can be bricked at anytime at the owners discretion (sorry, the owner of the nonfree software controls your computer– not you, which is why it should be replaced with free software).
        1. Section 2 of this readme, Basic Requirements, contains resources that you can use to avoid this threat. Ensure to reject nonfree software whenever you encounter it, and to educate users by pointing them to http://www.fsf.org/, and http://www.gnu.org/ in order to protect their freedom!
      • With free software, there are no owners– only users, where every user is a potential contributor for the program; however, with nonfree software, there exists an owner who arbitrarily imposes restrictions on you.
      • Nonfree software users are often asked to comply with an NDA or EULA in order to get them to agree with the restrictions that come with the program, because the "owner" has declared that all knowledge of the program is strictly confidential. If you read these tyranical contracts, you'll learn that the software in question is not being sold to you; rather, it is being licensed to you. In essence, you are not allowed to purchase a copy; you are a licensee of a black box technology (i.e. a technology whose inner-workings are censored), that exists in a binary executable.
      • All software– except Public Domain software– is distributed under a license, and these licenses will tell you what you can or can't do with the software. I urge you to read the license that comes with your software, in order to find out how much control you really have over your programs. If a program does not come with source code, and the author[s] of the program have not given you permission to freely control it, then the normal restrictions of copyright apply: The owner of the program has exclusive rights for its use and distribution; in other words, the user does NOT control the program, the owner controls it. RMS: The owner controls the program and the program controls the users, which means this program is an instrument giving the owner unjust power over the users. This is why nonfree software should not exist, so the aim of the Free Software Movement is: No more nonfree software; we want to liberate everyone in cyberspace.
      • According to RMS, President and Founder of the FSF

        As a computer user today, you may find yourself using a proprietary program. If your friend asks to make a copy, it would be wrong to refuse. Cooperation is more important than copyright. But underground, closet cooperation does not make for a good society. A person should aspire to live an upright life openly with pride, and this means saying no to proprietary software.

        You deserve to be able to cooperate openly and freely with other people who use software. You deserve to be able to learn how the software works, and to teach your students with it. You deserve to be able to hire your favorite programmer to fix it when it breaks.

        You deserve free software.

    • What if the above threat of DRM has affected several colleagues of yours?
      I'll expand. Pretend you live in a world dependent on nonfree software
      Some of your colleagues were able to inform you of the irregularities they noticed in their cameras right before they became bricked. Noticing the irregularities in your own camera, when you tried to record an invaluable speech about freedom– which was seized by the government and then copyrighted– you power it off, just in time! You now proceed to transfer the temporary copy of the recording onto DRM-paper. After approximately 69 hours of physically transcribing the binary information by hand, the DRM ink starts becoming blurred. Your fingerprint is stored on both the DRM-paper and inside the DRM-camera, so DRM-authorities were able to identify you as attempting to infringe the copyright draconian laws.
      Your actions manage to set a precedent, though…
      The ink does not disappear, even though the data you copied matches a file in the DRM media files database. The reason for this, is because corrupt lawyers, businessmen, and programmers never expected anyone to rip a media file onto DRM-paper; thus, they never added a routine to make ink disappear when such an event occurs. You see, DRM-paper isn't accepted by printers in this era; printers have been outlawed by this time since DRM can't be used on them; the same goes for public libraries– they don't even exist in this time frame. The only way to capture and disseminate information in this proprietary era, is to use DRM approved information devices– otherwise known as DAID. Businesses provide people with DAID gratis whenever they want to begin an academic career, or wish to create technical works; however, all users of DAID are subjected to surveillance, censorship, and royalty fees (this specific penalty is incurred whenever you publish information with DAID– providing a steady income that continues to fund the proprietary corruption).
      I digress, though. No one expected you to circumvent DAID!
      You managed to bypass the nonfree restriction of DRM, and retrieved a lost artifact of the old world– evidence of free speech! You publish your findings on over a thousand copies of DRM-paper, using an illegal copying machine running free software. You transfer it to a friend, who just so happens to be a pilot. After dumping boxes and boxes filled with this publication to neighboring cities, people soon begin to wake up and question their local businesses and governments. Even though you were incarcerated before your friend took flight, DAID and all draconian laws that enforced DRM were abolished 10 years later. After people finally came to their senses, nations were able to communicate with each other in peace for the first time in decades; not only that, but scientific progress and public literacy skyrocketed! Students were no longer criminalized for "taking notes" while studying textbooks; public libraries were re-opened; copying machines were no longer guarded by security guards; authors were no longer forbidden from cooperating with each other, and were able to create bibliographies again; children were allowed to bring the source code of programs that they liked on digital devices, so that they could present how they work for "show and tell". You were released from your imprisonment soon after and given the Presidential Medal of Freedom, as well as a copy of the U.S. Constitution– with the missing 13th Ammendment restored– one of the first documents in over five decades to be written without DAID. For your insights on software freedom, you were applauded as a visionary for a free society. Soon after, nonfree software became outlawed on every continent on earth, in order to ensure that the general public will never be left divided and helpless again!
      What's the moral of the story?
      Such a bleak and dismal future awaits us if we accept nonfree software, so why support the possibility? Do not write, run, share, or fund nonfree software!
      • When you write nonfree software, you impose restrictions on the user that are similar to the above story. Software is born free… until you decide to distribute it without a free license. Keep in mind that the moment you create a work (in the U.S. at least), your work becomes copyrighted by default and hence restricts users; thus, unrestrict your work via a free license so that users can have their basic computing rights (A.K.A. software freedom).
      • When you run nonfree software, you develop a dependence on software that you can not control, and that can mistreat you at the owners discretion. Most of the time, there exists DRM that controls how many copies you can install and hence run on your computer; once you reach the install limit, the malware will corrupt the installer so that you can't install anymore copies. Do you really think you are in control of such software?
      • When you share nonfree software with others, you run the risk of being branded as a pirate for making unauthorized copies, and can be jailed for this "crime"; whereas, if you made copies of free software, the Free Software Movement will not penalize you for sharing– we encourage this type of cooperation and do NOT consider it to be illegal. Another reason to reject nonfree software, is because it supplants the users right to software freedom, with the penalty of software restriction.
      • Last, but not least: When you pay for nonfree software, you help fund the creation of a dark and dismal future similar to the above story; a future, where all users are restricted, and left divided and helpless. A free society will not come into being, if we accept software designed to prevent its existence.
  • Nonfree software is the gateway to malware!
    • Knowing that you can't see the source code and change it, proprietary developers will be tempted to put in malicious functionalities. This type of software can abuse you at anytime; imposes usability restrictions; and how it works, remains a secret.
    • No matter if its a backdoor, censorship, sabotage, spyware, or DRM, the consequence for it's inclusion is always the same: Nonfree software, in the form of malware, will put the user at a disadvantage; implant dependence for future abuse; and can remotely change it's policies, your programs, and your data without your consent. Nonfree software that restricts Freedom #1 is always possible malware, because there is no way to verify or rule out that it is not without the source code.
  • Malware does not exist in the free software world, because the moment a free program is published, you have the chance to view the source code of that program. If it contains bugs or malicious functionalities, the users are in a position to take the effort to get rid of them. They can make a modified version of that software, devoid of any bugs or malware. No computer user wants to install defective software, so they'll use the corrected version instead.

1.1.3 In light of all this– what makes free software, like Genshiken, so different?

Free software gives you back control over your computer

I mentioned earlier that nonfree software in general and DRM (a type of nonfree software) both restrict the user; however, how do they compare with one another? Here's an oversimplified answer: With nonfree software in general, you can not control a program; with DRM specifically, you can not control your data. Proprietary software owners want to control your programs, but they also want to control your personal data, as well. Most people find that they can not copy their DRM-encumbered data to non-DRM enabled devices. This malpractice is an example of vendor lock-in, because the vendor does not want you to leave their platform. The fact of the matter is that if you use nonfree software, then your freedom will be restricted– plain and simple.

Genshiken is different from proprietary streaming dis-services, because you are not required to give up your freedom in order to use it. Genshiken gives you the freedom to be in control of the content you watch. Since most websites, companies, or services use nonfree software– which has already been identified as divisive to society– the user is left helpless for they can not control the software (i.e. no access to the source code; denied software freedom; more on this topic later). In comparison, free software programs operate in a transparent manner and can be audited, adapted, and shared to suit our needs!

The main purpose of Genshiken is to give you that kind of control when loading online videos, without the need for nonfree software– which can't be audited, adapted, or shared by anyone except for the owner of the nonfree program who monopolizes the software. DRM is proprietary malware; thus, it is incompatible with free software, and will never be found in Genshiken's source code. Also, since there is no DRM in Genshiken, there is no concept of approved platformsGenshiken can run on any platform that supports free software. I don't believe in vendor lock-in, either– every file you download with Genshiken, can be shared on any platform that supports free software.

Genshiken is not a browser plugin, but rather, a command-line script that parses the HTML markup of a website. Websites are then converted into playlists, marked from A-Z, that are sent to a pager program on your computer. From there, you can browse and select from an alphabetized list of video series. Once you've made your selection, you may prompt for a description to be printed to standard output– along with an image, giving you an idea of what type of animation to expect. If you like what you've read and seen, then you may download/stream the series.

Genshiken currently works on 1 website: The Watchcartoononline.COM Network. This website acts as a central hub that hosts third party video links submitted by users. These links, however, are loaded utilizing nonfree software, like Flash8 or nonfree JavaScript9. With nonfree software being run on your computer, you do NOT control how these videos are loaded– that's where Genshiken comes in. Genshiken is similar to youtube-dl and Linterna Magica10 in purpose. Genshiken is designed to operate on a website, treat it as a series of playlists, and works with external players/viewers that you have installed on your system. It's name comes from an Anime whose abbreviation meant: "The Society for the Study of Modern Visual Culture".

1.2 What capabilites or features are available?

  • Current features for version 0.5.2 of Genshiken, include:
    • Converting a website into a series of playlists
    • Defining which video to start on from any playlist
    • Ability to query for a description of your content before selection
      • This description comes with an image, since pictures are worth a 1,000 words
    • Streaming online videos
    • Downloading online videos
    • Playing local videos that were downloaded by Genshiken
    • Colored output from the command-line
    • Simple values accepted as arguments to Genshiken, instead of lengthy URL's
    • Ability to save an active session to a file
      • You can maintain as many sessions as you want!
      • When you load the session, you're back where you left off
    • Content URL visibility
      • You always know exactly where your content is coming from
      • By default, only ethical sources are selected
  • Examples of execution from the command-line:
    • genshiken --get anime-dub
    • genshiken --view cartoon --start-at latest
    • genshiken --stream movie --no-update
  • Genshiken will be supporting more websites soon!

2 Basic Requirements

GNU

First and foremost, please know that this software relies heavily on software from the GNU Project11. If you are NOT running a GNU/Linux12 operating system, then downloading and installing Genshiken will be more difficult! There are free distributions available at: http://www.gnu.org/distros/free-distros.html. These distro's use a deblobbed version of the kernel Linux, known as Linux-libre13.

In 3 steps, you can be up and running with a free distro! Enter n if you're system is already free; ] if in Info-mode. You may scroll down by entering v (SPACE if in Info-mode), if you are Not ready for freedom.

First, you'll need to ensure that your computer is compatible with free software. In the age of treacherous computing14, you may need to buy a computer that grants you more freedom, or create one that respects your freedom off the bat. The second step would be to choose a free distro to install from the above website, and then make a bootable device. Once you've done this, the third step would be to tell your BIOS15 to load your bootable device; however, this may be tricky if your computer comes with Restricted Boot16 enabled.

  • Below are some resources for liberating your computer!
    Hardware Devices that Support GNU/Linux
    Here are some devices that are certified to respect your freedom17! If you wish to make your own computer, consider accessing H-Node first; each device listed in this database is tested for compatability with free software.
    Burn Trisquel CD images OR How to Create a LiveUSB
    Learn how to create a bootable CD or USB of a free distro. This particular example provides a Live system– meaning, you can boot AND test it without having to install it first.
    How to access your computers set up screen…
    If your computer uses a proprietary BIOS18, then it does NOT respect your freedom! You might still be able to load a free distro if you follow these instructions.
  • Not ready for freedom, yet?
    You deserve to be in control of your computer; however, if you are not comfortable with installing a fully-free operating system at this time, then you may access the below resources instead to get the software running on a nonfree system. Do realize though: Only a free– as in freedom– operating system, gives you the ability to control all software installed on your computer; whereas, a nonfree system may contain malware like DRM (exists to restrict your freedom), which can't be removed and whose sole functionality is to mistreat the user.

2.1 GNU/Linux users

GNU/Linux is free software

Powered by GNU

  • Run check-dependencies, and install whichever software packages that you are missing.
  • Here are some common install commands for different GNU/Linux-libre distro's:
    Dragora GNU/Linux-Libre

    sudo pkg add dependency-1 dependency-2 ...
    GuixSD

    guix package -i dependency-1 dependency-2 ...
    Parabola GNU/Linux-Libre

    sudo pacman -S dependency-1 dependency-2 ...
    Trisquel GNU/Linux

    sudo apt-get install dependency-1 dependency-2 ...
  • Review the documentation that comes with your package manager for more details!

2.2 OS X® users

Mac OS X is nonfree software

apple-is-drm

  • Jump to the dependencies section, and then return here by pressing b (press l if in Info-mode).
    • Whichever software you don't have on that list, you'll need to install.
    • Consult the below resources in order to install the required software packages.
    • You may learn how to install the Mac OS X version of Dependencies 6-8, via the software package's respective homepages.
      Install and Use GNU Command Line Tools on Mac OS X
      Here is a resource with free software that you may install! I suggest installing all GNU software recommended on that website; the complementary set of packages are optional. With this resource, you'll be able to install Dependencies 1-5 of Genshiken.
      I use Mac OS X… moving to free software…
      Here is a resource for those that are starting to realize that nonfree software, like Mac OS X, is an unethical, user-subjugating system, and that it's time to move on to freedom. Free software replacements are offered for common proprietary programs. This resource is listed in order to grant you access to additional free programs that you may find useful.
      Free Software for iOS
      Here is a resource with free software that you may install! Unlike Windows for the PC, replacing iOS with a free operating system is not an easy task. Regardless, here are some programs that are interoperable with iOS and Replicant– a free operating system for mobile devices. This resource is listed in order to grant you access to additional free programs that you may find useful.
    • You may follow the link to Imgv for Dependency 9 in order to install a free image viewer. Download and extract the GNU compatible tarball or zip file, and read the README-UNIX.txt file for installation instructions.
  • Once you've installed all of Genshiken's dependencies, run check-dependencies in order to verify that you've installed all of the required software.

2.3 Windows® users

Windows is nonfree software

Close Windows, Open Doors

  • Jump to the dependencies section, and then return here by pressing b (press l if in Info-mode).
    • Whichever software you don't have on that list, you'll need to install.
    • Consult the below resources in order to install the required software packages.
    • You may learn how to install the Windows version of Dependencies 6-7, via the software package's respective homepages.
      Free Software for Windows
      Here is a resource with free software that you may install! Use this resource in order to install Dependencies 1, 2 and 8 of Genshiken. You need to install MinGW19 from the Programming Utilities Category, so that you can acquire GNU Bash and Getopt. The last thing to install from this resource is a free media player called VLC, which Genshiken is already configured to interface with. You can also try installing MSYS2 instead of MinGW, which aims for better interoperability with native Windows software and even comes with its own package manager, Pacman, to make it easier to install free software.
      GnuWin Packages
      Here is a resource with free software that you may install! Use this resource in order to install Dependencies 3-5 of Genshiken. These GNU command-line utilities give shell scripts, like Genshiken, their functionality. Most shells, can hardly function without these types of programs. You must also install GNU Make or make, so that you can execute the Makefile for installing Genshiken; make is not listed as a dependency because Genshiken does not require it in order to run– only to install. If you installed MSYS2 from the above resource, then you should already have the required GNU software; if not, then you'll need to instruct Pacman to install those packages for you.
      I use Windows… how can I move to free software?
      Here is a resource for those that are starting to realize that nonfree software, like Windows, is an unethical, user-subjugating system, and that it's time to move on to freedom. Free software replacements are offered for common proprietary programs. This resource is listed in order to grant you access to additional free programs that you may find useful. The above resources are listed specifically for Genshiken.
    • You may follow the link to Imgv for Dependency 9 in order to install a free image viewer. Download and extract the GNU compatible tarball or zip file, and read the README-WINDOWS.txt file for installation instructions.
  • Once you've installed all of Genshiken's dependencies, run check-dependencies in order to verify that you've installed all of the required software.

3 Where can I get a copy?

Savannah

Genshiken is distributed under a free license20, and with source code21 so that you can control the software22. A HACKING file is provided to make freedom #1 more practical for computer users.

In the below subsections, you may choose to edit the location of the source directory, MY_SOURCES. This variable represents the designated location, where the software will be downloaded and extracted to. To do so in Org mode: Enter M-S-g MY_SOURCES=src MY_SOURCES=where-you-want-to-extract-to <RET> !, to query and replace all instances of the source directory.

By default, the source directory will be created in your home directory. If this is not to your liking, then you may also edit the variable BASE_DIR.

  • An example could be one of the following (these examples require root access):
    • BASE_DIR=/opt
    • BASE_DIR=/usr

3.1 How do I authenticate this software?

A digital signature is provided (e.g. the file ending in .sig) to ensure the authenticity of this software. Before I securely copy Genshiken to the download server, I create a detached signature to go along with it using public-key cryptography. In order to verify the signature that comes with Genshiken, you'll need the GNU Privacy Guard23 (gpg). With GnuPG you can retrieve my public key which I have stored on a keyserver, verify that I am indeed the author, and verify whether the software is intact.

KEYSERVER=keys.gnupg.net
PROJECT_HOME=http://www.nongnu.org/genshiken
AUTHORS_KEY_ID=$(lynx -source $PROJECT_HOME/AUTHORS |\
                 gawk -F: '{ print $3 }' |\
                 sed -n '2 p')
# This will add my public-key to your keyring
gpg --keyserver $KEYSERVER --recv-keys $AUTHORS_KEY_ID
# The 2 fingerprints (1 from my website; 1 from your keyring) must match
lynx -source $PROJECT_HOME        | sed -n 's_.*GPG Key:.\(.*\)</a>.*_\1_p' &&
gpg --fingerprint $AUTHORS_KEY_ID | sed -n '/^[[:blank:]]\+Key/s/^.*= //p'

Once you've verified my public key, you'll be able to verify whether the software is intact after you download it. That particular process is automated by a bash script in the next subsection.

3.2 Where can I download each version of the software?

Tarballs24 are provided in the Download Area of GNU Savannah. If you do not have access to a browser, or simply wish to use the command-line: Follow the below instructions inside of bash(1). If you already have the Makefile, then you may enter make grab-pkg instead. Freedom #2 isn't theoretical! Feel free to mirror the Download Area, in order to make it more accessible to others.

BASE_DIR=$HOME # Feel free to change this value
MY_SOURCES=src # Feel free to change this value
ATOM=https://savannah.nongnu.org/news/atom.php
GETV="1,/<title>Announcing ${NAME^?}/ s/.*[ ]\([0-9]\.[0-9].*\)<.*/\1/p"
FEED=${ATOM}?group=${NAME:=genshiken}
DOWNLOAD_SERVER=http://download-mirror.savannah.gnu.org/releases
LATEST_VERSION=$(lynx -source $FEED | sed -n "$GETV")
LATEST_TARBALL=$DOWNLOAD_SERVER/$NAME/$NAME-$LATEST_VERSION.tar.gz
mkdir -p $BASE_DIR/$MY_SOURCES
cd $BASE_DIR/$MY_SOURCES
# Removing any old traces of Genshiken
find -name 'genshiken' | xargs rm -rf
find -name 'genshiken-*.tar*' | xargs rm -rf
# Downloading the tarball, and its associated signature
wget $LATEST_TARBALL
wget $LATEST_TARBALL.sig
PKG=$(ls $NAME-*.gz)
SIG=$(ls $NAME-*.sig)
# Verifying the tarball is intact
gpg --verify $SIG 2> /dev/null
if [[ $? -ne 0 ]]
then echo -e "\n\e[31mError:\e[0m Either the download was interrupted, or the official file is corrupt."
else tar -xzvf $PKG; echo -e "\e[32m${NAME^?}'s tarball has been extracted to: $(cd $BASE_DIR/$MY_SOURCES; pwd)\e[0m"
fi
cd ./$NAME

3.3 How do I get the latest version from source code control?

For those who wish to grab the source code that contains the latest changes, a repository is made available via the Concurrent Versions System (CVS). If you do not have access to a browser, or simply wish to use the command-line: Follow the below instructions inside of bash(1). The below script get-current-repository, will give you anonymous access to a read-only version of the repository. You can get read-write access, if you become a project member; go to section 8.1, Development Resources (Enter g 8.1 <RET>; t 8 1 if in Info-mode), for more details.

if [[ -d ${CVSROOT:-} ]]; then
  BASE_DIR=$HOME # Feel free to change this value
  MY_SOURCES=src # Feel free to change this value
  mkdir -p $BASE_DIR/$MY_SOURCES
  cd $CVSROOT
  # Checking out Genshiken via Anonymous CVS
  ACVS=:pserver:anonymous@cvs.savannah.nongnu.org:/sources
  cvs -z3 -d$ACVS/${NAME:=genshiken} co -P $NAME
  cd ./$NAME
  make tarball
  mv ../$NAME-*.tar.gz $BASE_DIR/$MY_SOURCES
  cd $BASE_DIR/$MY_SOURCES
  [[ -d $NAME/ ]] && rm -rf $NAME/
  PKG=$(ls -1 $NAME-*.gz | sed -n '$ p')
  tar -xzvf $PKG
  echo -e "\e[32mA clone of the repository is located here: $CVSROOT/$NAME\e[0m"
  echo -e "\e[32mA fresh tarball of ${NAME^?} has been created from the repository, and has been extracted to: $(cd $BASE_DIR/$MY_SOURCES; pwd)\e[0m"
  cd ./$NAME/
fi

4 What is included?

Genshiken comes pre-packaged with various scripts and documentation. Execute the command lynx MANIFEST.html, in order to view the list. You may run: md5sum file-in-manifest, in order to ensure the authenticity of each file. The MD5 Checksum of each file should match the same hash inside the MANIFEST.

CVSROOT=$(echo ${CVSROOT:-${PWD}/..})
cd $CVSROOT/${NAME:=genshiken}
cat <(find -type d | sed 's_./__; 1 d; s/.*/& **********************************/' |\
      grep -v 'CVS') \
    <(md5sum \
      $(find -type f | sed 's_./__' | grep -v 'CVS') |\
        gawk '{ print $2,$1 }' | sort | sed 's/\(^[^ ]*[ ]*\)\([^ ]*\)/\1*\2*/')  |\
gawk '{ print $2,$1 }' | grep -n '.*' | sed 's/[ ]/\t/; s/:/.\t/' |\
gawk 'BEGIN { print "#\tMD5 Checksum\tFile\n" }; { print }' |\
while read column
do
  manifest_desc=share/doc/$NAME/manifest-desc.txt
  file=$(echo "$column" | gawk '{ print $3 }')
  description=$(grep "| $file " $manifest_desc | gawk -F'|' '{ print $3 }')
  echo -e "$column\t$description" | sed '/#/ { s/File/&\tDescription/ }'
done > MANIFEST

5 How do I install it?

Installing Genshiken is a trivial process on GNU/Linux, but if you are using a nonfree system, then you may run into some difficulties. Genshiken has only been tested on the GNU/Linux system. If you are having difficulty installing or running Genshiken on a nonfree system, then post a message on the mailing-list (See section 8.2, Contact Information, for details) for help. The answer may be as simple as modifying a few lines of code in Genshiken's Makefile, so do not give up on the first attempt.

5.1 What does Genshiken require in order to function?

Provided below is a checklist of required software that Genshiken depends on, and a list of optional ones. A dependency checker is built into the main script of Genshiken, and will complain if you attempt to run it when not all dependencies are installed. You may execute the script check-dependencies to verify whether you have all of the required software packages, and you may view the list of dependencies to install whichever is missing.

5.1.1 Check Dependencies

  • Execute the below script check-dependencies, to find out what you're missing

    # Checking version of GNU Bash (needs to be version 4 or higher)
    [[ $BASH_VERSINFO -lt 4 ]] && echo -e "\e[31mError: You need to install version 4+ of GNU Bash." >&2 ||
    {
      # Take note of any Warnings that are printed!  You'll need it for section 6
      echo -e "\e[32mOK:\e[0m Package \e[36mbash\e[0m is the correct version: \e[35m$(bash --version | sed -n '1 p')\e[0m"
      type getopt &> /dev/null
      [[ $? -eq 0 ]] &&
      echo -e "\e[32mOK:\e[0m Package \e[36mgetopt\e[0m is already installed." ||
      echo -e "\e[31mError:\e[0m You need to install \e[36mgetopt\e[0m!" >&2
      # Checking for the GNU Core Utilities...
      info coreutils &> /dev/null
      [[ $? -eq 0 ]] && echo -e '\e[32mOK:\e[0m You have the \e[35mGNU Coreutils\e[0m installed.'
      for pkg in $(echo -e 'cp\nsed\ngrep\ngawk')
      do
        type $pkg &> /dev/null
        [[ $? -eq 0 ]] &&
        echo -e "\e[32mOK:\e[0m Package \e[36m$pkg\e[0m, a part of \e[36mcoreutils\e[0m, is already installed." ||
        echo -e "\e[31mError:\e[0m You need to install \e[36m$pkg\e[0m!" >&2
      done
      # Checking for the GNU Find Utilities...
      find --version | grep GNU | grep '.*' &> /dev/null && xargs --version | grep GNU | grep '.*' &> /dev/null
      [[ $? -eq 0 ]] && echo -e '\e[32mOK:\e[0m You have the \e[35mGNU Findutils\e[0m installed.'
      for pkg in $(echo -e 'find\nxargs')
      do
        type $pkg &> /dev/null
        [[ $? -eq 0 ]] &&
        echo -e "\e[32mOK:\e[0m Package \e[36m$pkg\e[0m, a part of \e[36mfindutils\e[0m, is already installed." ||
        echo -e "\e[31mError:\e[0m You need to install \e[36m$pkg\e[0m!" >&2
      done
      # Checking for command-line networking utilities...
      for pkg in $(echo -e 'wget\ncurl\nlynx')
      do
        type $pkg &> /dev/null
        [[ $? -eq 0 ]] &&
        echo -e "\e[32mOK:\e[0m Package \e[36m$pkg\e[0m is already installed." ||
        echo -e "\e[31mError:\e[0m You need to install \e[36m$pkg\e[0m!" >&2
      done
      # Checking to see if you have common media players...
      which mpv mplayer2 totem vlc xine | grep '.*' &> /dev/null
      [[ $? -eq 0 ]] &&
      echo -e '\e[32mOK:\e[0m You already have a \e[35mmedia player\e[0m installed.' ||
      {
        echo -e '\e[33mWarning:\e[0m Could not detect any media players!' >&2
        echo -e 'Please install one of the following media players:'
        echo -e '\e[36mmpv\e[0m'
        echo -e '\e[36mmplayer2\e[0m'
        echo -e '\e[36mtotem\e[0m'
        echo -e '\e[36mvlc\e[0m'
        echo -e '\e[36mxine\e[0m'
        echo -e '\e[36ma-different-choice\e[0m'
      }
      # Checking to see if you have common image viewers...
      which eog geeqie ristretto | grep '.*' &> /dev/null
      [[ $? -eq 0 ]] &&
      echo -e '\e[32mOK:\e[0m You already have an \e[35mimage viewer\e[0m installed.' ||
      {
        echo -e '\e[33mWarning:\e[0m Could not detect any image viewers!' >&2
        echo -e 'Please install one of the following image viewers:'
        echo -e '\e[36meog\e[0m'
        echo -e '\e[36mgeeqie\e[0m'
        echo -e '\e[36mristretto\e[0m'
        echo -e '\e[36ma-different-choice\e[0m'
      }
    }
    

5.1.2 Dependencies [55%]

If you are running a GNU/Linux operating system, then at least half of these packages (approx. 55%) should already be installed by default. Follow the URL for each software package to learn more about them.

  1. [X] GNU Bash (Version 4+)
  2. [X] Getopt (from util-linux 2.25.2 or higher)
  3. [X] GNU Core Utilities
  4. [X] GNU Find Utilities
  5. [X] GNU Wget
  6. [ ] cURL
  7. [ ] Lynx
  8. [ ] A video player (below are some examples; export PLAYER for others)
  9. [ ] An image viewer (below are some examples; export IMAGER for others)

5.1.3 Optional Packages

The following packages may also be installed for use with Genshiken. The URL of certain videos can't be ascertained by Genshiken alone; thus, youtube-dl may be invoked to test whether Python can handle the job. Certain video links are obscured through the use of JavaScript; which, most of the time is nonfree. Support for PhantomJS could be added in the future; hence, any URL's to video links which are contained inside of JavaScript, instead of user-friendly iframes, could be read by PhantomJS within a subshell.

5.2 Installing Genshiken

Before you execute the following commands: Ensure the above dependencies are installed. You should have already downloaded and extracted the software at this point; if not, go back to Download the Tarball.

  • Are you a Windows user?
    • If you are installing Genshiken on Windows, then you'll need to export the PREFIX variable before you install Genshiken. The command export PREFIX=/, will set your root directory (c:\, is the typical drive letter) as the install directory. An alternative command export PREFIX=/Program?Files should set the install directory to coincide with the rest of your Windows applications. I have not tested this, since I do not use nonfree software.
    • Make sure to verify that the PREFIX variable is valid by changing into the saved directory: cd $PREFIX.
# OPTIONAL: export PREFIX to install in another directory (e.g. ~export PREFIX=/usr~)
BASE_DIR=$HOME # Feel free to change this value
MY_SOURCES=src # Feel free to change this value
cd $BASE_DIR/$MY_SOURCES/${NAME:=genshiken}
sudo make install
BASE_DIR=$HOME # Feel free to change this value
MY_SOURCES=src # Feel free to change this value
cd $BASE_DIR/$MY_SOURCES/${NAME:=genshiken}
make new-config
#  NOTE: if you set the PREFIX variable before the install,
#+ then you must set it the same way before the uninstall.
BASE_DIR=$HOME # Feel free to change this value
MY_SOURCES=src # Feel free to change this value
cd $BASE_DIR/$MY_SOURCES/${NAME:=genshiken}
sudo make uninstall

6 Getting Started!

genshiken-logo

Now that we've installed Genshiken… what do we do now? Simple! It's time to run it. Assuming you've followed all of the above steps correctly, you should now have Genshiken installed on your computer.

6.1 How do I access the quickstart guide?

# You may append =less=, to view the output in a pager
cat <(genshiken --help; echo) \
    <(man genshiken |& sed -n -e '/^EXAMPLES/,/^[ ]*PLAY$/ p' \
                              -e '/^ENVIRONMENT/,/^AUTHOR/ p' |\
                       sed -e '$ d')

If you find an easier way to create a simple reference for using Genshiken, then please post it on the mailing-list (See section 8.2, Contact Information, for details).

6.2 Do I need to configure Genshiken before I use it?

You may need to configure Genshiken depending on the below test. You'll need to take note of whichever media players or image viewers that you have installed on your system. Genshiken will be interfacing with them in order to send all videos/images to your screen.

  • Test if you have media players or image viewers that are recognized by Genshiken.
    • Execute check-dependencies, again.
    • There shouldn't be any errors at this point
      • If there are and you're stuck: Post a message onto the mailing-list for help
      • Learn more about the mailing-list in section 8.2, Contact Information
    • What we are looking for are any Warnings printed from the script
      • If the script says you already have a media player, or an image viewer: SUCCESS!
      • If the script does give you a warning… don't worry!
        • You can always use a-different-choice
        • Execute the following:
          export PLAYER=my-favorite-media-player
          export IMAGER=my-favorite-image-viewer
        • Consider adding these commands to your .bashrc file to make them permanent.
  • Remember:
    Genshiken is free software!

    You can configure Genshiken to behave the way you want it to! You can even hack the program so that it works on different websites! Learn more about what you can do with Genshiken in section 7, Documentation.

6.3 How exactly do I use Genshiken?

The best way for me to explain how to use this software, is via an actual example of its usage. I executed Genshiken inside of an Emacs buffer running bash(1). After watching an episode of a video series, I exececuted C-x h C-x r N, in order to add line-numbers to the entire buffer; afterwords, I moved point to column 3 and executed column-marker-2 to add a cyan marker, thereby seperating the line-numbers from the actual Genshiken session. I then executed M-x htmlize-buffer, in order to save my session as an HTML file so that we can use it as an example.

  • View this example session in a new tab/window, and I'll explain how it works below
    Line 1
    I executed genshiken --stream anime-dub. What I am essentially telling Genshiken, is that I would like to watch/stream some online videos– simple! The option --stream, can be replaced with --get in order to download videos, instead.
    Line 17
    I press [ENTER] or <RET> to read the Legal Disclaimer from the Watchcartoononline.COM Network.
    Line 89
    I enter yes to acknowledge what I've read. You may remove this particular procedure from your versions, if it starts to annoy you.
    Line 92
    Believe it or not, Genshiken can detect whether you are using an HDMI Monitor or not; however, this requires that you have XRandR installed (if you have X11, then you already have it). It will attempt to configure it for you if it's connected when you press [ENTER]. If there is one connected when you enter <RET>, then it will ask if it's okay to set it up; xrandr is invoked to execute this task. The procedure is buggy at best, but may work for certain monitors of different resolutions.
    Line 97
    Genshiken has detected that I have saved some previous session files to the filesystem, and is asking if I would like to either: [S]tream the video identified in the current file; move to the [N]ext previous session file; [R]emove the current file; or simply continue with a new session. I pressed <RET> to continue with a new session.
    Line 100
    Genshiken is downloading the webpage marked in the red carrots. What's happenning, is that the website HTML markup is being parsed in such a way, that all video series will become alphabetized for easy reference. As you've noticed on line 101, there are some series that do begin with either a number or punctuation mark. Each of these lists can be viewed with a pager like less(1). If you see that there is a letter of the alphabet missing– don't panic! It's not a bug– it's just that Genshiken has not detected there to be any videos for that category. If you do find a bug: Report it to me (See section 8.1, Development Resources, for more details).
    Line 129
    Genshiken is informing you that you may enter Q to quit at the next prompt; although, I don't see why you would want to :-)
    Line 162
    I am able to enter Q, or a number from 1-27. Each of these row rumbers, will give me access to a different series. I enter 5 to enter series_D.
    Line 166
    Do you see the single characters in brackets, colored in Magenta? They represent keystrokes that you can enter at the next prompt. Entering A, means you changed your mind and want to view [A]nother series; entering V, means you forgot which number is associated to your particular choice of video, and you want to re[V]iew the list again to determine the row #; finally, entering Q quits the program.
    Line 237
    Now we're getting somewhere! I can finally tell Genshiken which specific show I would like to watch. In this prompt, a number from 1-62 can be entered, or the letters A, V, or Q. I enter 51 to relive my childhood; please excuse me if you don't like my choice– just couldn't resist :-)
    Line 240
    We have confirmation; a show has been selected! As a programmer, I'll never forget this moment– will you? 20 episodes later…
    Line 242
    I know it's pretty obvious what these options mean; however, I know some of you will want an explanation, anyway. Here we go: A– I changed my mind, please output the list of series for me again; S– I know what I want, just play the video already; D– this show has an interesting title… I might watch it if I'm informed on what it's about, and if the graphics are decent; Q– it's time to [Q]uit :-(. Anyway, I decided to get a description of the video series, so I entered D.
    Line 246
    A Plot Summary is provided thanks to the Description option.
    Line 264
    I am prompted again if I would like to stream this series. This time, I enter S, so that I can watch the show.
    Line 272
    Genshiken is informing you how big the playlist is, and what number it's starting off with. You can change which episode to start on using the --start-at option.
    Line 278
    If you actually visit the webpage identified on line 273, then you'll notice there are 3 players available to watch the video. Of course, you're not going to actually view those videos using those players, since they use nonfree software. All red lettered words with underscores in them, are actually the names of Genshiken's functions. Extract Information exists to inform you what players are available, and which website is hosting a video whose URL can be parsed by Genshiken.
    Line 291
    Genshiken has selected a player– meaning, that the website that the player refers to is hosting the video in a way that can be parsed by Genshiken.
    Line 292
    What you think might be the URL of the video, might actually be a redirection to another website– these are third-party websites, you know. The Watchcartoononline.COM Network is just linking to them.
    Line 295
    After Genshiken parses the HTML of the website that we redirected to, it captures the actual URL of the video. The function name makes it obvious what Genshiken is doing. Believe it or not, downloader browser plugins have a hard time figuring out the URL of a video if redirection is involved– Genshiken attempts to find it anyway, though.
    Line 299
    Why is the phrase in Magenta so verbose? Streaming is printed, because Genshiken is trying to tell you what it's doing; that word will be replaced with Downloading if we used the --get option, instead of the --stream option. Single is printed, because videos may be viewed as a Single episode, a 2-Parter, or a compilition of more than 1 episode. Regular Episode is printed, because the video in question might be a Movie, or a Special Episode– like an original video animation, which might not be considered as canon to the original work.
    Line 300
    This is why Genshiken exists– to play online videos without nonfree software!! If this wasn't possible, Genshiken would never have been released. At this point, a video is being watched– HA-OOH HA-OOH HA-OOH!
    Line 327
    You can move on to the next episode by exitting the video, either by: Pressing Q, <ALT>-[F4], or simply waiting for the video to finish. To exit and save the current session to a file so that you can watch it later, press C-c. Since I was in an Emacs buffer that isn't a fully emulated terminal, I entered C-c C-c instead. My session is now complete. If you prefer not to save your session, then consider using the --no-sessions option.
  • If you find any discrepancies, or are confused by this example: Please post a message about it on the mailing-list.

7 Documentation

To print a brief usage summary from the command-line, execute genshiken --help. If you need more information, then read the manual instead.

The current version of Genshiken is an alpha release. This section details all of the documentation files for Genshiken.

Ps
The FAQ is in Section 1 of the HACKING file. Visit section 8.1, Development Resources, for more details.

7.1 What is the best way to read the documentation?

Most of the documentation is written using plain text (a.k.a. ASCII25), because this is a format that all computers can understand; also, it encourages future retrieval and reuse. The best way to view all documentation is via Org mode inside of GNU Emacs! If you feel lost or don't have an easy way to navigate the outline structure of the org documentation (e.g. via Org mode itself; via org-tree-slide; via epresent; etc.), then you may use any other versions that are avialable.

  • The Emacs command to export Org files to other formats is: org-export-dispatch (C-c e)
  • Assuming you installed the software without changing the PREFIX variable, the main documentation should all be located in /usr/local/share/doc/genshiken.
  • There are 6 files in question that make up Genshiken's documentation. They should be read in the following order:
  • If you read the the MANIFEST file inside the tarball, then you should already have a basic understanding of what these files are for.

7.2 How do I access the manual?

  • Are you a Windows user?
    • If you are trying to view Genshiken's manual on Windows, then you'll need the equivalent of the man command.
      • Install GNU Troff, so that you can read Genshiken's manual.
      • Execute the following commands in succession to view Genshiken's manual:
        1. cd $BASE_DIR/$MY_SOURCES/${NAME:=genshiken}
        2. groff -Tascii -pet -mandoc -P-c share/man/man1/genshiken.1 | less -irs
    • Still having trouble?
      ManScript
      If you are still having trouble reading man pages on Windows, then review this resource. Provided are scripts designed to work with MinGW and Windows console programs, so that you can view man pages using a simple command. A configuration file is also provided to allow you to define possible locations for man pages. For instance, you may append MANPATH /Program?Files/share/man/man1 to man.conf, so that man.sh will understand how to pull Genshiken's man page when you execute man genshiken.
      (no term)
      If you have MSYS2, then instruct Pacman to install the man command. Chances are, it may already come with the man package by default. If you don't have MSYS2 and are interested in installing it, then visit the Windows® users section for the link and information.
;; You may execute ~man genshiken~ in bash(1), instead
(man "genshiken")
;; If the buffer doesn't change, execute: ~C-x b *WoMan 1 genshiken*~
(woman-find-file "share/man/man1/genshiken.1")
  • You may also access the online version: manual.html
  • Here is the corresponding source code for the manual!
    • Export to man within Org mode using: M-x org-man-export-to-man <RET>

8 Feedback

Free Software, Free Society

This is a free software project! Unlike nonfree software, which thrives on a dependence model– where users are subjugated and forced to go along with every change the owner of the program makes; free software provides a development model– which allows a community to correspond with the developers, cooperate with contributers who take part in making changes, and– above all else– grants the user the right to exercise their freedom.

With that said: The below resources are available to you, if you have any additional questions or wish to make a contribution. The 4 essential freedoms26 are a big theme in this document, because Genshiken consists of 100% free software powered by GNU. As the above infographic suggests, you can exercise these freedoms to control this software!

8.1 Development Resources

  • For a history of changes: See the ChangeLog for more details.
  • For a set of release notes or news announcements: See the NEWS file for more details
    • Subscribe to the Atom Feed to stay updated!
  • Visit the Project Development Page for current developments.
    1. If you want to contribute to this project:
    2. Found a bug?
      • Submit a bug report!
        • For documentation, bugs can be:
          1. Grammer errors
          2. Diction errors
          3. Nonfree resources that should be replaced with free/libre resources
            • For instance:
              • An Org target that links to a HOWTO or tutorial that is licensed as nonfree, should be replaced with a HOWTO or tutorial that is licensed as free/libre.
          4. Information that conflicts between different documentation
            • For instance:
              • If The definition of a parameter differs between the --help option and the manual, then that's a documentation bug.
        • You may apply the same above criteria for source code comments, as well
        • For the software, bugs can be:
          1. Improper use of a command
          2. Using deprecated parameters, instead of safer or more effective parameters
          3. Sending unwanted output to standard output
          4. Using a nonfree file
            • For instance:
              • If there is no Copyright Notice or License Notice for the file, and it is not in the Public Domain, then the file is nonfree.
              • If the file is licensed as free, but it recommends or links to nonfree files
  • Engineer your own solution by HACKING Genshiken!
    1. This file contains a list of Frequently Asked Questions (FAQ).
      • Feel free to add your own questions to the file!
    2. A basic guide is included for getting more familiar with the software.
      • This requires some basic understanding of the GNU/Linux operating system
      • Introduction to the Command Line – Free/Libre manual documenting the GNU/Linux command-line
      • New to free software? Read the above manual before entering the HACKING file!
    3. Familiar with Genshiken? Execise Freedom #1, and hack27 Genshiken
      • Consider exercising Freedom #3, so that all users may benefit from your hack
      • Some people wonder… why write free software?
        • Well, there are several motives for writing libre programs, so please contribute!

8.2 Contact Information

EMAIL SELF-DEFENSE

[MU Poststamp]

  • Get technical support or feedback of software use via GNU Mailutils!
    Any and all questions are welcome :-)




    join-the-fsf
    Michael Pagan
    71B46D72

    Resist Bulk Surveillance

    mailto:michael.pagan@member.fsf.org

    GPG Key: B942 AD12 82B1 6D14 27A0 86AE 119E 451E 71B4 6D72

    For those who prefer using a text interface: Gnus comes with GPG integration!28






    My E-mail– for personal/business messages, and questions not directly pertaining to Genshiken. Click on my FSF member button to join the FSF! For those outside the loop: Encrypting our messages with free software, is a big first step towards securing our privacy, and forming the web of trust. Fight back surveillance29, with GnuPG!

    XMPP-logo

    pegzmasta@member.fsf.org




    This is my XMPP30 account, for Instant Messaging. E-mail is still the best way to contact me, though. Via E-mail, we can arrange for a real-time Jabber conversation. If you plan on contributing to Genshiken, then this is the best place– besides the HACKING file– to get all your questions answered. I don't use this account often, but you should be able to see my current status there.

    Not f'd — you won't find me on Facebook

    mailto:genshiken-users@nongnu.org

    Public mailing-list for user help and discussion. Subscribe by clicking the above Dislike button31!

9 Genshiken Icons

  1. This readme (or index.html)
    using-genshiken-big.{png,svg}
    Depicts Fenice using the command-line from her cubicle
  2. genshiken-anime.desktop
    using-genshiken.svg
    Depicts Fenice using the command-line from her cubicle
  3. This readme (or index.html), HACKING, genshiken-manual.desktop
    sos-gear.{png,svg}
    A blue gear with the SOS Brigades' insignia on it

10 License Notice

gplv3-logo

Copyright © 2015-2016 Michael Pagan

Genshiken is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

Genshiken is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Genshiken; see the file COPYING. Also, when referring to Genshiken (i.e. in either text/audio/video), please do not call this software: open source software– it's not! This is free software– period.

Footnotes:

1

The default shell for the GNU system. It provides a command-line, where it is common to invoke programs from a text terminal; still the preferred method by sysadmins for controlling one's computing!

2

Uniform Resource Locator; web address. Unfortunately, most websites obscure browser scripts (a.k.a. obfuscript; this is NOT source code) on their webpage, making it hard to determine the video URL, and how videos are being loaded; thus, the existence of Genshiken.

3

A value that is passed as a parameter for a program. For example, a synopsis for the use of Wget(1) is wget [option]... [URL]...; where [URL] is a parameter of wget, and a possible argument could be this https://static.fsf.org/nosvn/FSF30-video/FSF_30_1080p.webm, for instance.

4

Free Software Foundation; learn more about the FSF!

5

Digital Restrictions Management. This type of malware, common with nonfree software (e.g. Windows, Mac OS X, the-iThings-from-[cr]apple, Amazon Swindle, Netflix, etc.), offers the malicious functionality to refuse to function. Ultimately, it is the Recording Industry that does not want you to share media that you've purchased. They are against the public interest, because they actively campaign to add malware in software. John Sullivan: Even the repressive copyright regime we have now obligates the government to represent the public's interest in promoting progress in science and the arts through sharing and the dissemination of knowledge. If the government starts working for the media companies, they will be working against the public interest, and we will surely see attempts to give legitimacy back to Digital Restrictions Management (DRM) systems-- unethical restrictions that squash so much useful sharing, education, and communication. Learn more about DRM!

6

Amazon implements DRM in their streaming dis-service, Amazon Prime. What they don't tell you, is that you have to install malware in order to access videos, and Flash in order to play them– both of which, are nonfree software. As their new commercial clearly states: There's More To Prime!

7

This particular article is created by proprietary developers in order to show case their malware to potential victims. Through the use of DRM policies, Access Tokens, and a malware program called ASPS Web Browser, media files can be distributed with restriction rules in order to prevent access to digital files and take away the users control. This malevolent scheme is a real-life example, created by ArtistScope, of a digital environment that allows the prevention of sharing– restricting Freedom #2 and Freedom #3 of the Free Software Definition. Propaganda terms like Copy Protection is used in order to misinform you that making copies of information can somehow damage the original source of the information under copyright. http://www.nongnu.org/genshiken/ is not licensed under this misconception, because of the fact that HTML documents can't incur damages when users make copies of them; the assumption that this website, or even the software that it documents, would incur damages without the nonfree restriction is ludicrous. ASPS malware is not FREE to use, since it is nonfree software; which also means that their statement that it is "free software" is also false. Free software users are accostomed to openly cooperating and freely sharing with each other, so they might understand the irony behind the malicious practice of sharing unreadable files with each other.

8

If you must use Flash, consider using GNU Gnash, instead.

9

Nonfree JavaScript in your browser can be dangerous. Read the The JavaScript Trap, for more details!

10

Linterna Magica replaces Flash objects with <object> tags that your browser can play. Learn more about Linterna Magica!

11

The GNU Project is the original free software project, dedicated to providing users with a fully-free operating system! Learn more about GNU!

12

Most people erroneously call this system Linux. Does it matter? What's in a Name? Well, it does matter! The name Linux refers to only a single program– the kernel; whereas, GNU refers to various programs from the GNU Project that form an almost complete operating system (by which, they are only missing a kernel). More importanty, calling it Linux does not educate computer users about their freedom; however, just by prepending the word GNU, we can lead computer users to the ideals of free software, and why they should have control of their computing. Learn more about why we should call this ethical system, GNU/Linux!

13

Linux is distributed under a free license (the GPL), but the source code contains BLOBs (Binary Large OBject; a series of ones and zeroes), which renders the software as nonfree. This is a violation of section 3 of the GPL, which clearly states: the user (i.e. Linus Torvalds) may distribute the Program provided that he also do one of the following … choice a), choice b), or choice c). A requirement for each of those subsections– choice a), b), or c)– is that he must also Accompany it with the complete corresponding machine-readable source code. Since he has not complied with the GPL, Linux is proprietary; fortunately, ethical hackers have already deblobbed the kernel and are providing a free version that we can trust! Learn more about GNU Linux-libre. Learn about other common distros that fall short of the ideals of freedom, by including nonfree software.

14

A REAL conspiracy by several proprietary companies, whose plot is to take away control of your computing. Learn more about treacherous computing! Learn about how hardware vendors can help mitigate this attack on our society.

15

Basic Input Output System

16

A replacement for the traditional BIOS. Joshua Gay: could lock users out of their own computers, preventing them from ever booting into or installing a free software operating system. Learn more about Restricted Boot!

17

The Free Software Foundation (FSF) "Mark of Approval for electronics"; Joshua Gay: hardware that will do as much as possible to respect your freedom and your privacy, and will ensure that you have control over your device.

18

With treacherous computing and Digital Restrictions Management (DRM) on the rise, the possibility of Restricted Boot becomes more likely. A campaign for a Free BIOS has already been launched! Let's ensure that our computers are born to run in freedom, with our operating system of choice.

19

Minimalist GNU for Windows

20

How software is distributed determines whether or not it's free. If it's not free, then you can't control it. Read Genshiken's license notice for details on what makes it free!

21

The human-readable files preferred for making changes to the software. Since Genshiken is a script and is not compiled, the entire program can be read easily; Execute genshiken --source-code to understand!

22

Nowadays, we have to do all we can to ensure that we have control of our computing. That's why I'm going through all these lengths, to ensure that all users of my software are in control. It's a matter of freedom. You should not be passive about your freedom, either. Keep control of your computing, so it doesn't control you!

23

A tool for secure communication. Unfortunately, the Pretty Good Privacy (PGP) protocol used a patented algorithm that can NOT be implemented in freedom; thus, a different algorithm was used in the free implementation of PGP, known as GPG, which we can control. To get up and running using GnuPG, try reading The GNU Privacy Handbook! If you want a quickstart guide, try reading this GnuPG Mini-HOWTO. Once you have gpg installed, you'll have quick and easy access to the full documentation with info gpg.

24

A compressed archive created with tar and gzip. The name derives from tape archive, and is a common way to distribute software in GNU/Linux.

25

American Standard Code for Information Interchange. Allin Cottrell: ASCII is the lowest common denominator of textual communication in digital form. An ASCII message will be “understandable” by any computer in the world. If you send such a message, you can be sure that the recipient will see precisely what you typed.

26

Very briefly, they are the freedoms to run, study, modify, copy, and distribute software as you wish, for any purpose. Here is the full definition, by the FSF!

27

The word Hack, and all derivitives, are misrepresented in the media today. What you think are hackers, may actually be crackerssomeone who seeks and exploits weaknesses in a computer system. Those who wrote that Hacker (computer security) article, are obviously not programmers; if they claim to be: They probably use nonfree software, which you are NOT allowed to hack– just to let you know! You may be wondering then: What is a hacker? Here is a definition straight from the most ethical hackers on the net: hacker. Were you surprised? Here's an article that appears to credit the original defintion, as well.

28

Gnus is a message reader, for GNU Emacs, that is used for reading and composing both news and mail. To start using Gnus in Emacs, enter: M-x gnus. If you are only interested so that you can start using E-mail in Emacs, do realize that Gnus is like a stone-age newsreader (i.e. you'll have to configure it for how to do E-mail); there are other E-mail clients that you can use for Emacs, but if you are still interested– Enter: C-h i m gnus 5. Here is a resource containing several articles for configuring Gnus: EmacsWiki Gnus. You may also use public-key cryptography for secure communication! Interested? If so, then follow footnote #23 about the GNU Privacy Guard to get up and running. Once you've done that, you'll need to create a .authinfo.gpg file. If you want an example of a working configuration, you may request a generic version of my .gnus.el file via E-mail; this configuration uses the nnimap protocol to communicate to a webmail system, so that there's no need to fetch messages you have stored on another server.

29

The NSA and other spy agencies are actively fighting against online privacy by degrading commercial, nonfree encryption software. They consider users of such software to be adversaries, and legitamize adding backdoors in encryption software; thereby, adding insecurity to security software. It's been reported, thanks to the bravery of Edward Snowden, that the NSA has been covertly forming partnerships with proprietary software companies to add secret vulnerabilities to their software. The best way to escape this type of sabotage, is to use free software instead! There already exists a guide to defend against bulk surveillance. The transparency and control provided by free software ensures that crackers, like the NSA, won't add malicious features to this software– for fear of embarrassment, if nothing else. Free software users are much harder to surveil than nonfree software users. While GnuPG helps protect your privacy with E-mail and allows you to encrypt messages and documents, there are several other free programs that can help you with other computing tasks as well. Zak Rogoff: There are even new, free software-based, decentralized, surveillance-resistant systems that we hope will someday replace the massive restrictive corporate systems that government agencies so desperately want complete access to. You can access these aforementioned tools in the Free Software Directory's encryption category! In light of all this deception, I would like to reiterate what was said in footnote #22: Keep control of your computing, so it doesn't control you!

30

Extensible Messaging and Presence Protocol

31

Why did I add a dislike button to my website? Could it be that I dislike Facebook?