Skip to content

Effortlessly manage all your streaming Movies and TV Shows in one place with this custom add-on for Channels DVR

License

Notifications You must be signed in to change notification settings

babsonnexus/stream-link-manager-for-channels

Repository files navigation

slm_logo


Stream Link Manager for Channels

In Channels DVR, users have the ability to add "Stream Links" and "Stream Files" as local content. These Stream Links/Files appear as normal Movies, TV Shows, and Videos next to recorded and other content. While Stream Files act like regular local media and directly play in the Channels app or admin web page, Stream Links do not. Instead, clicking on one of these launches the appropriate app or web page and plays the content there. In order to do either, the process consists of creating .strmlnk or .strm files, putting them in the appropriate location, and running updates in the Channels DVR admin interface to get the content to appear. As can be imagined, the activity around creation and maintenance is incredibly manual and cumbersome.

Enter Stream Link Manager for Channels!

image

Stream Link Manager for Channels is a background service that sets up a web-based graphical user interface (GUI) for interaction. In the GUI, users can search for any Movie or TV Show and bookmark it. If it cannot be found, manual additions are allowed. Assuming a program is found, for "Stream Links", the software will parse through a user-derived list of Streaming Services (i.e., Disney+, Hulu, Netflix, Hoopla, Kanopy, etc...) in priority order—including setting a preferred service for a particular Movie or Episode as an overarching setting—in order to determine the appropriate link. There is also the ability to input user-derived links, especially when dealing with "Stream Files". After this, the necessary folders and files will be created, along with completing all other administrative tasks. Should a bookmark move from one Streaming Service to another or the user does a manual adjustment, Stream Link Manager for Channels will automatically update everywhere that is required. But this is just the beginning of its capabilities! To learn more, watch the video here:

image

NOTE: Some of the visuals seen in the videos and in the screen shots above and below may be out of date as updates to format and functionality have been applied to the program.


SpaceX_ASDS_in_position_prior_to_Falcon_9_Flight_17_carrying_CRS-6_(17127808431)_EDITED Image (edited) courtesy of SpaceX, CC0, via Wikimedia Commons.

Installation

There are several methods to install Stream Link Manager for Channels and only one should be followed. While Docker is the preferred route for those who have it as it is the most controlled path, if you are not comfortable with Docker or are having issues, you can do a straight self-deployment in Windows or Linux, or use Python in any OS type. For those unfamiliar with Docker, you can easily install Docker Desktop as a stand-alone application. If you are installing Docker in Windows, please set up Windows Subsystem for Linux (WSL) first by following these directions. Channels DVR users who have deployed OliveTin for Channels and/or Project One-Click can use those, as well, to simplify the process. Just follow one of these paths throughout the entire installation, doing the step-by-step actions exactly as described.

SLM Installation Decision Tree

You can also follow along in the video here:

image

As a general note, it does not matter "where" Stream Link Manager for Channels is installed; it could even be placed in the Channels DVR directory. The only requirements are that it must be on a machine and in a location that has directory access to the Channels DVR directory and be able to see the Channels DVR Administrative webpage.

Docker

If you are not using OliveTin/Project One-Click, it is recommended to install via Stack using Portainer (Docker Desktop | Docker Standalone). Otherwise, you can use the single command line method as shown below.

Stack (Docker Compose)

services:
  slm:
    image: ghcr.io/babsonnexus/stream-link-manager-for-channels:${TAG:-latest}
    container_name: slm
    ports:
      - "${SLM_PORT:-5000}:5000"
    volumes:
      - slm_files:/app/program_files
      - ${CHANNELS_FOLDER}:/app/channels_folder
    environment:
      - TZ=${TIMEZONE:-UTC}
    restart: unless-stopped

volumes:
  slm_files:

Environment variables are included, some required, some optional.

image

  • TAG | OPTIONAL | Which version of the program you want. The default is "latest" if you do not add.

  • SLM_PORT | OPTIONAL | The port you want to access the program from in the web browser. The default is "5000" if you do not add.

  • CHANNELS_FOLDER | REQUIRED | The path to your Channels DVR parent directory (see details in Startup below), i.e., /usr/lib/channels-dvr. You could optionally put in any parent path, so long as the Channels DVR path is accessible somewhere inside. Note that spaces are fine and you do not have to enclose the path in quotes. In Windows, your slashes should go the opposite of the normal way, i.e., C:/Files/Media/Channels DVR. In MacOS, be sure to include your /Volumes first, i.e., /Volumes/external-hdd/Channels DVR. Be careful not to put extra characters as your system may then create that directory anyway. In other words, there will be no error as the directory exists, but it is not set to where you want it to be.

  • TIMEZONE | OPTIONAL | The timezone you want to use. To know what to input, go here, find your timezone, make sure it is a "Canonical" Type, and use the "TZ identifier". The default is "UTC" if you do not add. Please keep this in mind when using the scheduler function.

Command Line

Follow the directions above for SLM_PORT in place of [YOUR_PORT_HERE] (except now it is REQUIRED), CHANNELS_FOLDER in place of [PATH_TO_CHANNELS_FOLDER], and TIMEZONE in place of [TIMEZONE]. Do not leave the [ and ] when putting in your values.

Most Cases

docker run -d --restart=unless-stopped --name slm -p [YOUR_PORT_HERE]:5000 -v slm_files:/app/program_files -v "[PATH_TO_CHANNELS_FOLDER]":/app/channels_folder -e TZ="[TIMEZONE]" ghcr.io/babsonnexus/stream-link-manager-for-channels:latest

Some Linux Cases

docker run -d --restart=unless-stopped --name slm --network=host -e SLM_PORT=[YOUR_PORT_HERE] -v slm_files:/app/program_files -v "[PATH_TO_CHANNELS_FOLDER]":/app/channels_folder -e TZ="[TIMEZONE]" ghcr.io/babsonnexus/stream-link-manager-for-channels:latest

Examples

docker run -d --restart=unless-stopped --name slm -p 7900:5000 -v slm_files:/app/program_files -v "C:/Files/Media/Channels DVR":/app/channels_folder -e TZ="America/New_York" ghcr.io/babsonnexus/stream-link-manager-for-channels:latest
docker run -d --restart=unless-stopped --name slm --network=host -e SLM_PORT=7900 -v slm_files:/app/program_files -v "/somewhere/channels_dvr":/app/channels_folder -e TZ="America/New_York" ghcr.io/babsonnexus/stream-link-manager-for-channels:latest

Windows

  1. Download the slm.bat file and place it in the final destination folder.

image

  1. Open a Command Prompt, navigate to that directory, and enter the following command:
slm.bat install

If using PowerShell, type in:

.\slm.bat install
  1. You will be given one last chance to decide if you want to do the installation. Note that an installation will remove any previous instance of Stream Link Manager for Channels at that location. This is unlike the "upgrade" below which will maintain all your files and settings.

image

  1. The process will then run normally until complete. You should see something similar to this when done:

image

  1. In your folder, you should now have this:

image

  1. OPTIONAL: By default, Stream Link Manager for Channels runs on port 5000. You can change this to another port by typing in this command:
slm.bat port

If using PowerShell, type in:

.\slm.bat port

Note that this will also open the port in the Windows firewall as a safety measure. Even if you want the default port of 5000, this is recommended to be run if you want to access the program on another machine.

  1. You will be prompted to enter a port number of your choice:

image

During the process, you may receive a popup asking for permission to run. Accept and continue.

  1. Once complete, you can see this port as an environment variable (where it can be removed, if necessary).

image

Additionally, in the Windows Firewall rules:

image

  1. Follow the directions on the screen of closing the current Command Prompt and opening a new one. In the new Command Prompt, you can confirm that that the port variable is being read correctly by typing:
echo %SLM_PORT%

If using PowerShell, type in:

$env:SLM_PORT
  1. You should see something similar to this:

image image

  1. With all this in place, you are now safe to start the program!

Linux

  1. Download the slm.sh file and place it in the final destination folder.

image

You can also do so by opening a terminal, navigating to that directory, and entering the following command:

wget -q -O "slm.sh" 'https://raw.githubusercontent.com/babsonnexus/stream-link-manager-for-channels/main/executables/slm.sh'
  1. Either way, once there, change the security level on the slm.sh file:
chmod +x "slm.sh"
  1. Execute the installation with this command:
./slm.sh install
  1. You will be given one last chance to decide if you want to do the installation. Note that an installation will remove any previous instance of Stream Link Manager for Channels at that location. This is unlike the "upgrade" below which will maintain all your files and settings.

image

  1. The process will then run normally until complete. You should see something similar to this when done:

image

... a whole lot of lines related to installing requirements and building the executable...

image

  1. In your folder, you should now have this:

image

  1. OPTIONAL: By default, Stream Link Manager for Channels runs on port 5000. You can change this to another port by typing in this command:
./slm.sh port

Note that this will also open the port in the firewall as a safety measure. Even if you want the default port of 5000, this is recommended to be run if you want to access the program on another machine.

  1. You will be prompted to enter a port number of your choice:

image

  1. Once complete, do the requested command to make the port available in the current session:
source ~/.bashrc
  1. You can then see this port as an environment variable (where it can be removed, if necessary):
printenv SLM_PORT

image

  1. With all this in place, you are now safe to start the program!

Python

Using Python directly is not recommended, however it is available as an option. As this is highly technical, only limited support is provided. It is expected that you are fairly familiar with Python and have pip installed.

  1. Download the slm_python.zip file and place it in the final destination folder.

  2. Navigate to that directory and extract the contents. Make sure you have not created another subdirectory. When complete, remove the slm_python.zip. It should now look something like this:

image

  1. Open a command prompt and navigate to the folder that you created. Type in the following command:
pip install -r requirements.txt
  1. OPTIONAL: It is possible to generate an executable from the Python file directly. The only caveat is that in order to make one that works for that system type (say MacOS) your actions have to be run on that type of system. That means if you want to create an executable for an unsupported system type, you can do so with the following command:
pyinstaller --noconfirm --onedir --console --add-data "requirements.txt;." --add-data "static;static/" --add-data "templates;templates/"  "slm.py"

Or...

pyinstaller --noconfirm --onedir --console --add-data "requirements.txt:." --add-data "static:static/" --add-data "templates:templates/"  "slm.py"

Or...

pyinstaller --noconfirm --onedir --console --add-data="requirements.txt:." --add-data="static:static/" --add-data="templates:templates/"  "slm.py"
  1. You will end up with some additional folders and files:

image

  • You are free to remove build and slm.spec.
  • dist contains the entire executable program. You can leave it in its current location, rename it, and/or move it somewhere else.
  • With that, you no longer need the original content that was unzipped and you can delete it if you want.
  1. OPTIONAL: You can change the port for Stream Link Manager for Channels by creating a permanent Environment Variable called SLM_PORT (case sensitive) and giving it a value of the port you want to use. If you don't, the program will run on port 5000. You may also need to open the port up to bypass firewalls or other such settings.

Upgrade

As with any program, there may be a need to update the code for stability, bug fixes, or general upgades. When a new version becomes available, you can easily upgrade using the directions below. To know when a new version is released, set up a watch on this Github repo.

bbae83c81a2ddd80776fe1b443bbf2c8bbc3d412

This way, you'll get an email whenever a new version is released, plus you can see exactly what has changed.

During an upgrade, the program_files directory is protected.

image

This is the most important directory as it contains all the settings, bookmarks, logs, backups, and other crucial information. As a best-practice, you may want to make a manual backup of this folder in case anything goes wrong during an upgrade. With this directory, even a fresh install can be restored with your details.

Docker

  1. Repull the Image and rebuild the Container. The program_files will be protected, so there should be no concerns about losing your settings and critical files.

If you are using Portainer, you can use the Recreate button:

image

When the option comes up, make sure "Re-pull image" is selected.

1fa26d390178259e861b4788a7b731aab16bd0cc

It then rebuilds the Image and the Container with all the original command lines. Remember to delete the old, unused Image afterwards.

Windows

  1. In Command Prompt, navigate to your Stream Link Manager for Channels directory and type in the following command:
slm.bat upgrade

If using PowerShell, type in:

.\slm.bat upgrade
  1. You may get a pop-up asking for permissions. Agree and continue until the process completes and you see something like this:

image

  1. The most important thing is that slm.exe was terminated or not running, allowing the upgrade to take place. After the upgrade, you will need to restart the program manually or with a reboot. See Startup below.

Linux

  1. In a terminal, navigate to your Stream Link Manager for Channels directory and type in the following command:
./slm.sh upgrade
  1. As the process runs, you should see something like this:

image

... a whole lot of lines related to installing requirements and building the executable...

image

  1. The most important thing is that the /slm application was terminated or not running, allowing the upgrade to take place. After the upgrade, you will need to restart the program manually or with a reboot. See Startup below.

Python

  1. Make sure Stream Link Manager for Channels is closed and is not running in the background.

  2. Copy the program_files directory under _internal to a safe location.

  3. Completely delete all the files and subfolders.

  4. Follow the directions for installation and replace the entire file content that were deleted in the prior step. If you have built an executable, you will have to redo those steps, as well.

  5. Move the program_files directory you saved earlier back under the _internal directory.

  6. Restart the program and everything should work the same as before.


Startup

Since Stream Link Manager for Channels is designed to run as a service that you access through a webpage, it should be set up to launch at system startup. There may also be reasons to start manually, like after initial installation or an upgrade.

Docker

  1. There is nothing additional to do as Docker will automatically start up.

Windows

  1. In Command Prompt, navigate to your Stream Link Manager for Channels directory and type in the following command:
slm.bat startup

If using PowerShell, type in:

.\slm.bat startup
  1. You may get a pop-up asking for permissions. Agree and continue until the process completes and you see something like this:

image

  1. If you open Task Scheduler, you should now see a task called "Stream Link Manager for Channels":

image

  1. The next time you reboot, Stream Link Manager for Channels will automatically start. Similarly, you can manually start it by either...
  • Running the process directly in Task Scheduler
  • Double clicking on the slm.bat file
  • In Command Prompt, typing in slm.bat
  1. No matter the method, it may look like nothing has happened, but if you start Task Manager you will see a slm.exe running in the background:

image

Linux

  1. In a terminal, navigate to your Stream Link Manager for Channels directory and type in the following command:
./slm.sh startup
  1. As the process completes, you will see something like this:

image

  1. To check if the task is scheduled to run at startup, enter:
ls /etc/init.d               # For Debian/Ubuntu/Mint
ls /etc/systemd/system       # For RedHat/CentOS/Fedora/Arch/Manjaro/OpenSUSE
ls /usr/local/etc/rc.d       # For Synology

You should see a file named slm_startup.sh:

image

  1. The next time you reboot, Stream Link Manager for Channels will automatically start. Similarly, you can manually start it by entering:
./slm.sh
  1. It may look like nothing has happened, but if you type in this command:
ps aux

You should see ./slm running in the background. If you want to only look for that process, type:

ps aux | grep [s]lm

In either case, you should see something similar to this:

image

Python

You have the option for how you want to handle this. Since Stream Link Manager for Channels is designed to be a background service, just running the program like this...

python slm.py

... or with the executable you generated will result in a window sitting there like this:

image

If that does not bother you, you should be fine. However, it is recommended to build an automation script that will start the process in the background and make it start upon login/bootup. For instance, if you wanted to do this in MacOS, you would:

  1. Make a new file called slm.app in the directory you created earlier, open it in Script Editor, and enter the following AppleScript code:
do shell script "nohup /usr/local/bin/python3 /[YOUR_SLM_DIRECTORY]/slm.py &> /dev/null &"

Replace [YOUR_SLM_DIRECTORY] with the path you created earlier and save the file.

  1. Set the slm.app to run at startup:
  • Open System Preferences > Users & Groups.
  • Select your user account and go to the Login Items tab.
  • Click the + button and add the slm.app you created.

All

  1. The first time you start Stream Link Manager for Channels, it may take a couple of minutes before it is available. This is due to it running many activities during initial setup that are not repeated. In later startups, it should be just a few seconds depending upon system performance and internet speeds. If you watch the logs or are in an interactive window, you may see something like this:

image

While the Initialization process attempts to find all the necessary values—even noting when it has to use a substitute value—do not worry if any of the searches faulter. There are various levels of safety checks and automatic timeouts that will move the process along. More so, you can always make adjustments in the Settings later. To be clear, any "error" or the like shown are not failures and are expected behavior. Everything directly related to Stream Link Manager for Channels is managed from the Settings area as discussed below.

Also worth highlighting: if you are using Docker, you may still see it says it starts on port 5000. There are no concerns about this as it is being mapped correctly so long as you gave a port value.

  1. With the startup complete, you can navigate to the webpage:
https://localhost:[YOUR_PORT_HERE]

i.e.,

Default...
https://localhost:5000

Example Mapped...
https://localhost:7900

If you are on a different machine than where Stream Link Manager for Channels is installed, you will need to use the name or IP Address of that machine in place of localhost and make sure the port is open (as discussed in the installation directions) to be accessed.

  1. Once at the location, you should see the homepage:

image

  1. After this, the program is ready to use!

Usage

Basic Usage

With the program running, there are a number of activities you should do before getting underway. Also, as a personal preference, if you click on the palette button...

image

... you can change to "Dark Mode":

image

Aside from the visuals, everything will function exactly the same.

Settings: Introduction

  1. Navigate to the Settings area. You should see something like this:

image

Settings: Search Defaults

  1. Before doing anything, you must set your country correctly (if it was not found or set incorrectly during initialization). This determines which streaming services are available to you:

image

Note for instance the difference between a US and GB list:

image

image

Click Save after you have selected your country, preferred language, and default number of programs to come up when you search. Please be advised that only certain country/language combinations are valid. A non-exhaustive list is available here.

image

Settings: Streamnig Services

  1. With that done, you can select your streaming services and prioritize them. You can select multiple at a time for any of the actions.

image

image

Remember to click Save when complete.

image

Be sure to keep this up-to-date as you subscribe, unsubscribe, and change preferences. This list is what determines which Stream Links you will get.

Settings: Stream Link Mappings

  1. Stream Link Manager for Channels uses JustWatch as the source for the final generated Stream Links. While a process is undertaken to "clean" the links of any tracking information, some may still be imperfect or have ways to work better with a "mapping". You have the ability to activate and/or create/delete those mappings:

image

Out-of-the-box, several are included that are all functional as well as informative:

  • Changing hulu.com/watch to disneyplus.com/play allows Hulu content to play within in the Disney+ app. This is off by default, but can be activated by clicking the checkbox and saving. It should be noted that not all Hulu content is available within Disney+. To work around this, Stream Link Overrides may be used as discussed below.

  • All Netflix Movies and Shows come from JustWatch with a link that contains netflix.com/title, which goes to the landing page of that content. However, if you change title to watch, it will play automatically. However, that only works for Movies, hence why that is in the dropdown selection For Object Type. This is on be default.

  • While JustWatch does provide Amazon links directly for Movies and Shows, the links that are given do not work in all situations, notably on Apple TV and the web. To get around this, the links can be converted with the string watch.amazon.com/detail?gti= being replaced with www.amazon.com/gp/video/detail/. This is on by default.

  • At the time of this program's launch, Vudu had changed its name to Fandango at Home and created a newly named app, but did not fix the app to accept Vudu links that it was still using. Since deep linking directly is not possible, this mapping says to replace any link that contains vudu.com in its entirety with a link that will just launch their app generically. This is off by default.

It is not required to set these immediately; they can be added, deleted, or modified at any time.

Settings: Channels URL

  1. Next, make sure the Channels URL is correct.

image

During Initialization, an attempt was made at determining the correct link. However, that may not have succeeded or the selection may not be the case for you. Modify if necessary and click the Test button to confirm that Stream Link Manager for Channels can attach to Channels DVR.

image

You also have the option to let Stream Link Manager for Channels attempt to determine the link again by clicking the Scan button:

image

In Docker, you may not be able to see local DNS. If that is the case, you can use this:

http://host.docker.internal:8089

image

Settings: Channels Directory

  1. Similarly, in order for the program to work correctly, it needs to be pointed to your Channels DVR folder. During initialization, an attempt was made to find the folder. If it could not be discovered, the directory you installed the program in was used.

image

You can navigate up the directory structure or manually type in a path to get where you want.

image

When you get to where you want, use the Select button to set that directory.

image

If you are using Docker, you should literally have a directory named "channels_folder" right underneath /app.

image

This is the folder you set during installation and should be what you are using. It will look something like this:

image

Do note that you must use the parent Channels DVR directory, not the Imports or anything similar. If you do not set this correctly or do not have access from the machine you installed Stream Link Manager for Channels on, then you will not be able to generate Stream Links that Channels DVR can see, nor be able to get updates from Channels DVR when programs are watched and deleted.

Settings: Advanced / Experimental

  1. Under Advanced / Experimental, you will find some tools to manage the program and your results.

image

Run 'Prune' function in Channels is on by default, which means that the program will initiate a delete in Channels DVR for any missing personal media, not just Stream Links. You may decide that you do not want this to run automatically.

Settings: Scheduler + Run Processes and Logs

  1. Finally, there is the Scheduler.

image

In the End-to-End Process, several steps are taken. These can all be seen and initiated manually in the Run Processes area.

image

These tasks are:

  • Do a backup
  • Update the Streaming Services for any new or removed providers
  • Check for new episodes of bookmarked shows
  • Import from Channels DVR any Movies and Episodes that have been watched and deleted, marking them as "watched" in Stream Link Manager for Channels
  • Find and assign valid Stream Links to bookmarked Movies and Episodes
  • In Channels DVR, initiate several steps to make new programs appear, have deleted ones be removed, and update specific files to use revised links

image

While these can all be done manually, it is recommended to set a schedule to run automatically at some point during the day.

image

Note that this can take a significant amount of time, depending upon the number of Movies and Episodes that you have bookmarked. Also, the clock shown should match your system and locale settings. After a process is complete, you can see pertinent notifications in the Home area (newest on top), such as if there are changes to Streaming Services or new episodes were added.

image

If you are looking for additional detail as to what transpired, the Logs area contains more information.

image

Unlike the notifications and live process trackers, the log is in order of action.

Search and Add Movies and Shows

  1. With this all in place, you can now navigate to Add Programs.

image

Here, you can search for a program you want to bookmark.

image

The default order is by best-match / popularity, but you can also choose to have the results re-display in alphabetical order and/or filter only for Movies or Shows.

image

Another option for searching is to see what has been New & Updated on the Streaming Services you selected in the Settings above. This will give you a list of Movies and Shows that have been added or updated on those services.

image

The list is limited to a single day and 100 entries, displayed alphabetically. Clicking Today will give you that list for this day. On the other hand, you can select any date and click New & Updated to get the Movies and Shows from that day.

image

image

No matter the search method, clicking on a Movie will get you something like this:

image

Notice that the Search and other line buttons are no longer available. You must finish this process by selecting Done or Generate Stream Links. If you do not generate Stream Links at the time of creation, they will be created (if valid) during the next run of the process as detailed above. Although it is not necessary, if you review the logs, you can generally see a successfully generated Stream Link appear as so:

    10 Buildings That Changed America (2013) assigned Stream Link: https://www.kanopy.com/product/10-buildings-changed-america

On the other hand, if a Stream Link could not be generated, a reason will be given:

    12 Angry Men (1957) assigned Stream Link: None due to 'Watched' status
    Amélie (2001) assigned Stream Link: None due to not found on your selected streaming services

In order for a Stream Link to be generated, the Movie or Episode must first have an Unwatched status, and then be available on one of the Streaming Services that were selected during Settings. The Watched / Unwatched status applies even if you put in a link of your own to override whatever may or may not be generated. This completely optional feature is not required, so leave it blank if you do not want to put anything there.

image

Once an add has been complete, you can search again. If we select a Show this time, it will have slightly different options:

image

Per episode, season, or for the entire show (or a Movie if bookmarking that), you can uncheck to mark it as Watched. It is important to note that in Stream Link Manager for Channels, the term Watched does not mean that you have ever seen the Episode or Movie. Marking something as Watched means that you are finished with it and do not want to generate a Stream Link/File for it. It is the equivalent of deleting an Episode or Movie from within Channels DVR. As discussed above, during the Import Updates from Channels process, this program checks to see if a generated Stream Link/File file has been deleted. If it has been, it will be marked as Watched and will no longer generate a Stream Link/File in the future. This is why it is equally important for users to not modify or delete the files that are generated by this program. Doing so could make Movies and Shows become erroneously marked as Watched. Only this program should modify anything in the created slm directories.

Aside from these considerations, per episode, you have the same Stream Link Override option as a Movie, as well as the ability to put a prefix on the generated file. For instance, by default, a file name will be S01E01.strmlnk. However, as an example, you may want to designate that this is a subtitled episode and that dubbed episodes might become available in the future. For this, a prefix of (SUB) will result in a file name of (SUB) S01E01.strmlnk. More so, there is a selection called Special Action that can also be propagated down to the individual episodes from the entire show or per season perspective:

image

In most cases, users will leave this as None, but there are situations when it will necessary to take advantage of these functions. For instance, if your Movie or Show is available on multiple Streaming Services but you prefer it to be on one with a lower priority, you can make that assignment. Another situation might be that you have a link to the media directly and, thus, would want to create a "Stream File" instead of "Stream Link". In this case, you would select Make STRM.

Sometimes when searching, you might not be able to find the Movie or Show you are looking for. While uncommon (see Troubleshooting / FAQ), it may happen, especially for rare or foreign content. In these cases, you can always create a manual bookmark.

image

While Movies are relatively the same as with a search, Shows provide a different setup when clicking Add Manual:

image

image

Note that you will only be allowed to continue once you've correctly put in the number of seasons and episodes per season.

image

image

Here you will see the episodes created as designed by the user. It should be highlighted that manual entries require a Stream Link Override to be entered, otherwise they will not generate a Stream Link file.

Modify Programs

  1. Even if a Movie or Show is added through search or manual selection, that does not mean they are set in stone. You can use the Modify Programs area to make any update as desired.

image

For instance, here is a Show that was created using search, but the search will only link to the subtitled episodes. In order to get dubbed episodes, a number of inputs are needed:

image

While you can delete an episode, if it is a searched bookmark and not a manual one, the episode will just get re-added as "unwatched". Aside from deleting episodes, there is also the ability to add additional episodes:

image

This is also a good area just to check on the status of Movies and Shows.

image

Note that the Current Stream Link field will always be greyed out and unable to be modified. If it is blank, this is an indication that no Stream Link was generated. If you want to change the Stream Link, give it one when none was generated, or input something for a Stream File, that is what the Stream Link Override field is for. After regenerating Stream Links/Files through any method discussed thus far or below, you should see something like this:

e172001b269677d537a74807fb36538a7d8be685-1

image

The Current Stream Link field having the skipped_for_override or strm_must_use_override value lets you know a Stream Link/File file was creating using the Stream Link Override value that was input.

Movies are fairly similar to Shows in the options, including updating the Title and Release Year itself if the data is incorrect or not how you want it.

image

Reports & Queries

  1. In order to streamline some questions you may have about your bookmarked Movies and Shows, certain reports and queries have been made available in the same named area:

image

To navigate the data, there are several functions such as number of results per page...

image

... number of entries being show out of how many...

image

... page navigation between those entries...

image

... and the ability to filter both by a general search...

image

... and on individual columns:

image

Administrative Functions

  1. Aside from these functions, there is not much else a user needs to do. There is the Files area for viewing the backend data that fuels all of the above, as well as exporting those files for backup and migration purposes.

image

You can also completely replace those files, though it is not recommended to do so unless you are specifically directed.

Lastly, there is the About area to see the latest version information, credits, and other information.

image


Troubleshooting / FAQ

My Streaming Service is missing

First, make sure you have selected the correct country code and saved. If that is already done, please make a request for the missing service by filling out this form. Note that JustWatch is responsible for the availability of Streaming Services and Stream Link Manager for Channels is just a downstream consumer.

What is the difference between Streaming Services with similar names (i.e., Apple TV vs. Apple TV Plus or Amazon Video vs. Amazon Prime Video)? Should I select both, or is it redundant?

JustWatch is responsible for the list of Streaming Services and their definitions, as such there is no specific guidance from the perspective of this program. However, it is most likely a question of content. For instance, "Apple TV" is Apple's generic name for all streaming content available for purchase and/or rent, just as "Amazon Video" is for Amazon. Each have exclusive content available for paying subscribers, hence "Apple TV Plus" and "Amazon Prime Video". Notably, in these highlighted examples, if you make your settings to have either the basic tier or the subscription tier as the top priority, the Stream Links that are generated will be exactly the same, therefore they will launch the same apps on your device. Due to this, if you have access to the subscription tier, then it may be redundant to have both. Nevertheless, that might not be the case for these or other services with multiple tiers and/or separate apps.

For example, say your Streaming Services were this:

97d2644b32522dcc850f5a4608838a95bff3796b

Then, if you add About Schmidt, it will end up with an Amazon link:

c9eab1a1394f3bcb7d056f3a129b7f3cb343d380

But if you do this:

f4d40157aa01c5935903302f7cca492a5e7b4787

You will end up with Apple links:

71a9003b70371941fb3bc4c070db70427f05535c

Yet, if you do this:

fe08bbfb780da6d40c79e36ecd2bf6321e068cf8

You end up with no Stream Link:

d18818ed755378cf3d0d6d44b06e7179e4ab15c3

It is all a function of what services you have selected and the data on JustWatch. As such, it is up to you to manage your services and find the best combination that works for your particular use case.

My Streaming Service suddenly disappeared and ruined my Stream Links!

While new Streaming Services are brought online and shut down on a regular basis, they also sometimes just change names. Any name change will result in the "old name" being removed and the "new name" being added. If this happens to you, all you need to do is return to the Setttings area, add the "new name", and prioritize it. The next time you generate your Stream Links, any missing Movies and Shows that were removed will be recreated. Remember, there is a difference between "bookmarking" a Movie or Show and having Stream Links for it.

The data or links for my program are wrong

JustWatch is the provider for all of the information. If there are any issues, please let them know by filling out this form or emailing them at feedback@justwatch.com. It is unlikely that they will make an update in a timely manner as they are also dependent upon upstream data, so please take advantage of the manual and override capabilities built into the program, or using mapping if possible.

Why can't I find the Movie or Show I'm searching for?

Stream Link Manager for Channels is completely dependent upon Movie and Show data from the JustWatch website, which in turn is a consumer of other upstream data. There may be a gap in any of those steps along the way, especially for non-domestic content and independent studios. Sometimes, though, you may even be able to see the content on JustWatch but are unable to find it in this program. There appears to be a small gap of time (usually one or two days) for some content to be completely discoverable by the tools that this program uses.

I'm able to bookmark a Movie or Show and I know it's on a streaming service I've selected, but a Stream Link still won't generate

Go to the JustWatch website and search for it on there. A Movie or Show might be available, but still be missing links to the appropriate streaming service. If it is brand new, it might also take a day or two until they update their data, which is what Stream Link Manager for Channels uses. Should the links be missing on JustWatch, submit a request by filling out this form or sending an e-mail to feedback@justwatch.com. If you can confirm JustWatch has a working link on there and it still won't show up in this program, please submit an issue request with as much detail as possible. There may be an edge case for how that particular Movie or Show is stored on JustWatch that this software has not accounted for.

I generated my Stream Links when I bookmarked my Movie/Show, but it didn't show up in Channels

Generating the Stream Link(s) is not enough; you need to update personal media from within Channels so that it appears inside that interface. There are several ways to deal with this. First and foremost, within this software, under Run Processes, is a button that will do all the necessary steps:

image

However, it is worth noting that there is a setting in Channels for how often it scans for personal media:

image

As such, you could just wait for that to run if you have it set for a particular interval.

A Stream Link generated and the Movie or Show is available in Channels, but when I click to launch it, I get an error. It works in the web, though. | The Stream Link works on one platform like iPad OS but does not work in another like tvOS.

There are two main potential situations. The most likely one is that the Streaming Service's app itself is written incorrectly and cannot accept "deep links". Without this, nothing can be done. You can request the app developers to update their program. In a similar vein, they may have programmed it to accept "deep links", but only in a certain way. If there is a systematic method to do a replacement in the generated link, then it could be added to Stream Link Manager for Channels in the Stream Link Mappings setting. For instance, JustWatch provides a link for Amazon content like watch.amazon.com/detail?gti= and, by default, this program replaces it with www.amazon.com/gp/video/detail/. If this is the case, please add a new mapping. Further, do let the community know about your mapping and, if it is useful for many people, it will be added to the default list that comes with a new installation.

There is also the possibility that the link cleaning and replacement process that this program is doing is overzealous. Please also put in a request for those situations and examples of working Stream Links.

Why do some things play the correct movie/episode automatically and why do others go to a generic landing page for that movie/show?

There are two components that relate to this. First is the quality of the links provided by JustWatch. For instance, with Disney+, JustWatch only has links to generic landing pages and does not have individual episode information like it has for Hulu. There is nothing that can be done aside from requesting that JustWatch updates their data.

The second situation is that even though JustWatch provides links to more generic areas, there may be systematic ways to correct them. As an example, JustWatch provides a link to a movie on Netflix that looks like this: http://www.netflix.com/title/81078554. However, if you replace title with watch, it will play automatically. This being a “systematic way” to do a replace, it was included in the Stream Link Mappings settings as highlighted above. If you have more examples that could be accomplished this way, please let the community know. If they are deemed benefitial for other users, they will be added to the default list that comes with a new installation.

I set the scheduler for a certain time and it is running hours earlier/later. | The time showing in the logs is wrong.

Follow the directions related to "TIMEZONE" in the installation steps above.

I never see anything in the "Live Process Log (While Running)" block

This block is just an indicator to let you know nothing is stuck and that things are still running in the background. For actions that last less than a couple of seconds, not enough time will pass to begin to fill it in. For anything longer, you will see information fill up to the top, but it will all clear out when the process finishes running. However, there are some issues with certain browsers like Safari where it seems incapable of displaying what is happening. Rest assured that although the background process is running as expected, you can always verify in the logs if desired.

Additional questions or issues

Please ask at the Channels DVR Community Message Board.

SpaceX_ASDS_moving_into_position_for_CRS-7_launch_(18610429514)_EDITED Image (edited) courtesy of SpaceX, CC0, via Wikimedia Commons.


Support

This project and its upkeep is the work of one person. While it is provided free of charge with no expectations of payment, tips are greatly appreciated!

image

https://paypal.me/basiljunction