Alleycat Player -- Instruction Manual


This is a work in progress. It may be updated with new information. Please provide feedback.


Preface

Alleycat Player is an application designed to access embedded video links on a wide range of web sites. The list of supported sites includes YouTube, BitChute, Vimeo, Twitter, Facebook, Periscope, Twitch and many more. Most web browsers natively support the playback of mp4 and webm, as well as a few other less popular formats. For the HLS and DASH streaming formats, Alleycat Player employs Javascript modules available in the public domain. For some sites, a proxy server may be required to bypass HTTP access restrictions.

There are three video viewers available in Alleycat Player. Each is dedicated to supporting a category of web sites. Functionally, the viewers are all exactly the same. Internet TV, for example, is supportable in any viewer. The Internet Radio is completely separate from the video viewers.

Selecting a Proxy Server

This option is available at the top of the Alleycat Player page. The default is the Kraker Local Proxy Server. If you do not have Kraker installed then you will need to choose a remote proxy from the dropdown list. Some sites do not need a proxy at all, others need a proxy to bypass the web browser restriction on Cross-Origin Resource Sharing (CORS), still others will not be accessible at all without Kraker. It is always preferable to have Kraker installed but that is up to you. Just be aware of the limitations. Remote proxies may go offline or not work with particular sites.

For some sites, Alleycat Player may need to access the video server through Kraker for playback or download. This is different from finding the video link. For example, Kraker is needed to access Twitter but the video link on Twitter is playable without Kraker. There is no rule for this. In cases where Kraker is needed to play a video, you will see "http://localhost:8080" at the beginning of the video URL.

Playing Videos

There are two ways to play videos embedded in web sites. The first method is to get the ID number of the video if such is available. Enter the ID number in the line below the "Play ID" button and press. The second method is to use the DIG option. In this case, you would copy and paste the URL of a web page in the line beside the "DIG" button and press. For some sites, Alleycat will search the indicated page for the ID number of a video and then apply the ID lookup function. Some sites do not employ video ID numbers so the DIG option is the only way to get the video. Many web sites can be problematic due to small or major differences in page design so this may not always work. Also, sites may sometimes change the page format so that Alleycat can no longer find the video. For this reason, the code is continuously being tested and will be updated accordingly.

A complete URL may be entered as the ID number with the caveat that the ID must be the last part of the URL. If a slash (/) or a dot (.) appears within the last 5 characters (like ".html") then the string will be truncated. A character count is used to separate the ID from the rest of the URL. For YouTube, an ID is always exactly 11 characters. For some sites, there is a small range like from 6 to 8 characters. In the event that a known good ID number is rejected, you can force the ID to be accepted by preceding it with an asterisk (*). This is seldom necessary but might be needed for some old videos.

In many cases, you have the option of choosing the resolution of the video. The format/resolution selection box has an odd appearance due to Alleycat's original purpose of extracting YouTube videos. YouTube, unlike every other video storage site, uses its own special coding system for resolutions and formats (because it has so many). For example, #22 refers to mp4-720p and #43 refers to webm-360p. Note that the webm format is only available on YouTube. The checkbox called "Format" applies to m3u8 playback (not mp4 or mpd). If checked, the video track for the desired resolution will be extracted from the master m3u8. Note that this cannot be done if the master file contains an audio track separate from the video. In this case, the HLS video player may independently select the desired resolution.

The video URL is always available below the video viewport. It may be copied to the clipboard via the "Copy" button. You can paste the URL from the clipboard to an external video playback device (such as VLC or SMPlayer). For some sites, the video feed may need to pass through Kraker due to server access restrictions. Such a feed is still playable on your external device since the local proxy is available to all applications. In some cases, the passthrough is only needed for the web browser and may be excluded (if desired but this is not necessary).

Use the "No Play" option to retrieve a video URL without playing the video. You can play a video in a new tab or a popup window. A range of popup window sizes is available. To utilize multiple windows, check the "Allow Multiple" option.

Downloading Videos

For the standard mp4 and webm video formats, use your web browser's default functionality for downloading. Right-click the video viewport or the video URL and select the download option. Streaming formats (HLS/m3u8 or DASH/mpd) are not directly downloadable. For some sites, download links may be available via the "DLoad" button. For m3u8, there is a download option available in Alleycat Player. It is accessed by prepending the video URL with a special command and then pressing the "Play URL" button. A window will pop up to show the progress of the download.

The m3u8 download process requires Kraker in order to work. This allows Alleycat Player to save each video segment immediately to disk as it is received. Aliases are used to name the saved files. Kraker will associate the aliases with the physical files via the "_aliases.txt" file. See the Kraker documentation. The special command is in the form "?<alias>". Usage example:

?<vid2>http://farawayserver.net/awesomevideo.m3u8

Two files (audio plus video; aliases of vid2-aud and vid2-vid) will be created on the disk. These are in mpeg2 format and are not playable in your web browser but they are playable with VLC or SMPlayer. You will need an appropriate tool to merge the audio and video tracks and save them as an mp4. If there is not a separate audio track then the audio file on disk will be empty.

Video Playback Controls

The main feature is the seek function with 6 presets (5s, 15s, 1m, 2m, 5m, 10m) and a freeform input which can accept either h:m:s format or just a plain number of seconds. Fractional values work too. Precede the number with a "+" or a "-" to seek from the current play time. For example, "+0.1" will allow you to seek ahead one tenth of a second for those times when you need to find the perfect spot to take a snapshot.

Click the mouse in the video viewport to pause or play the video. Move the mouse cursor to the bottom of the viewport to show the controls. The controls will normally remain visible if an audio-only file is playing. If you want to hide the controls then click the viewport.

There are controls for pause/play, audio volume and playback speed. The "B" control is for brightness, the "S" control is for saturation, the "F" control flips the video horizontally, the "R" control rotates the video and "FS" activates the full screen mode.

Viewer modes: Raw / Wrapper / Sandbox

Sandboxing (implemented via the iframe tag) is employed by Alleycat Player to prevent Javascript embeds from opening popup windows for advertising. Some pirate video download sites are unsafe when used without a good popup blocker. However, if you play the URL inside Alleycat Player, these popups are very effectively blocked. Any URL may be inserted, not just videos. The native viewers are sandboxed by default. However, if you employ a window option to open the URL, you need to indicate that you want the window to be sandboxed. Just check the Sandbox option. If you don't want a sandbox but you want to run a non-video URL then check the Raw option. In the default Wrapper mode, there are three selectable options: Wrapper for playing mp4/ogv/webm videos (or whatever video format your web browser supports), M3U8 for HLS/m3u8 files and DASH for DASH/mpd.

Web browser compatibility notes (this information might be outdated)

Microsoft Edge has native support for m3u8 and mpd. This does not conflict with Alleycat Player. Videos have a strong tendency to pixelate badly. Google Chrome and Brave also have issues with pixelation but to a much lesser extent. Firefox has no such issue. Opera, Maxthon and Vivaldi were briefly tested. They work but popup windows may not size correctly.

If the "Allow Multiple" option is not checked, windows are supposed to get re-used or closed as needed. However, I have found two cases where the web browser incorrectly blocks the window close function in Alleycat Player. Edge does not allow a window opened in Raw mode to be closed. Firefox (on Win10 but not on WinXP) blocks in Raw mode if the window is controlled by an extension (such as for m3u8/mpd playback).

Always keep in mind that browsers contain various "security" features that may interfere with Alleycat Player. Consider that Alleycat is able to extract video links from numerous different sites. Your browser has no idea what is trustworthy and what is not (even though the content is just a video). You may need to battle with the site blockers in the browser itself and in whatever add-ons or extensions you may have. Don't blame Alleycat. Your browser is just trying to "protect" you. Normally, a notice of some sort should appear to warn you about blockage. Sometimes not. If a video does not play, check the settings in your web browser or popup blocker. 'Nuff said. It isn't too bad overall.

Addendum: Microsoft Edge is hopelessly broken. Videos play with only sound because Edge does not support the CSS filters used for the brightness control. Also, Edge is not allowing connections to the local host (might be an option somewhere but I can't be bothered to find it). To repair the no-video problem, find and comment out this line of code:

vid.style.filter = "brightness(" + lvl + ") contrast(" + con + ") saturate(" + sat + ")";

Update: CSS filters are now being used for the radio buttons and checkboxes to get rid of the ugly gray background on Chrome-based browsers. This breaks on Edge as well. The offending two lines of code read as follows:

filter: contrast(1.2) brightness(1.4) opacity(85%);

Caveat: My version of Microsoft Edge is out of date since I have Windows 10 updates disabled.


Additional Notes


YouTube - Alternative Sources and DASH

There is a dropdown box above the video viewport to select from a number of options for the YouTube source. Currently, only YouTube itself and two Invidious instances are available. The standard formats for a YouTube video are: 360p-mp4, 720p-mp4 and 360p-webm. There is an additional option to select the YouTube DASH formats (this is the default setting). This option is only available via the Kraker Local Proxy Server. The audio and the video are provided as separate streams. The YouTube tag numbers are as follows:

#140 (audio), #134 (360p), #135 (480p), #136 (720p) -- mp4
#251 (audio), #243 (360p), #244 (480p); #247 (720p) -- webm

Higher resolutions may be available for some videos but Alleycat does not access them (at least, not at this time). If the DASH formats are not available (rare), Alleycat will revert to the standard formats. The audio and video streams are both available for download via the "DLoad" button.


Stack Buttons and the Pop Stack

Each viewer has a row of buttons for the purpose of playing saved video links. Except for the Internet TV, these are provided for testing purposes. In future, it will be possible to load a stack list from the local disk but, for now, you will have to dig through the Javascript if you wish to modify the stacks.

A stack is like a playlist but without the options you would normally associate with a playlist. A stack link may be either a full URL or an ID number with an identifier for the web site to search. Later revisions to this help file may elaborate on this but it is somewhat complicated.

Pressing a stack button will generate the stack list in two places: the dropdown listbox below the ID number field and in the "pop stack" which is an array of buttons displayed over the video viewport. Clicking on a button in the pop stack will immediately play the associated video. Alternatively, you can pick from the dropdown box and then press "Play ID".

The pop stack is an important tool for accessing the Internet TV. The channels are categorized for easy referrence. The pop stack also includes a history of up to 12 previously played channels. There is an option to display the pop stack when you pause the video. Check "Allow Multiple" for this. This option will also change the function of the "Copy" button to show or hide the pop stack. Unpause the video to hide the pop stack or press a blank button if you wish to keep the video paused.


Internet Radio and Internet TV

The Internet Radio is very basic. Just press a button to play the radio. You can also play a video in audio-only mode as long as it is not a streaming format (m3u8 or mpd). Press "Stop" to stop whatever may be currently playing and then press "Play" after you have entered the video URL. For YouTube, use the 11-character ID. The audio will play via an Invidious instance (whichever is currently selected in the Internet TV viewer; default is invidio.us). For your convenience, the Internet Radio will pause when you play a video in any of the video viewers. Press the "Clear" button to unpause.

The Internet TV works exclusively with livestream m3u8 links. A wide selection of such links have already been provided. The majority of the channel links are persistent, meaning that the link does not require an authentication code to activate. For non-persistent links, Alleycat Player must extract a newly authenticated link from a web site. Currently, the main sources for links are:

ustv247.tv, uvtvgo.tv, watchnewslive.tv, 123tvnow.com

These sites require the Kraker Local Proxy Server. They cover most of the US TV channels. Some channels have two sources. The secondary source may be selected by choosing webm in the format selection box. The channel names will include a plus sign to indicate that a secondary source exists (double-plus if the channel is sourced from different local stations). An asterisk indicates that the channel requires either Kraker (indicated with a double-asterisk in the absence of a plus sign) or at least a CORS unblocking extension.

The "Radio" stack contains radio stations sourced from iHeartRadio and VirtualDJ. This feature is just a demonstration. I threw it together on a whim before building the Internet Radio.


Go to the Local Proxy Server instruction manual.